How can I read data from SharePoint List using C# - c#

I have to read some sensitive data from one of SharePoint site company has and insert those data back to SQL server.
I already tried with Power Automate but failed to implement solid solution due to the DB server authentication issue.
Now I have to implement new solution with C# but still haven't found a better way to do this.
Any help here

Related

C# Web Service from Microsoft Access Database - Conceptual Issue

So, for reasons uncontrollable by me, myself and a few other developers are required to write a C# Web API to connect to an access database, to allow the data to be returned via JSON for various dashboarding and reporting needs.
Yes, I know this is an odd setup. Basically a client with a legacy Access DB, and they cannot change. Various alternative options have been put forward, but the above is the way it needs to be done unfortunately.
Anyway, my issue is that Access locks the database when opening it.
Scenario:
Client is viewing new dashboard etc. which received it's data from the Web API, which in turn connects to the access database.
All works fine, until the Access DB file is opened with Access to update some values. This kills the connection via the WebAPI with the following error:
This error only exists whilst the file is open in Access. Once the database is exited, normal service resumes.
Now I've done loads of reading about the interwebs about Access creating locks for users etc, and I know it is probably very bad practice to have multiple users accessing an Access DB at any one time etc.
Am I right in thinking that this is just a limitation of Access, or would there be some way for me to solve web services dying when the Access DB is open within Access? I've looked at the various users and the like, but I cannot seem to find a suitable workaround.
Thanks in advance.
Kindest Regards

Web service for Laravel

Assume that I have a third-party database application with SDK that can be used to retrieve data out of the database in XML.
On the other side, I have developed a website using Laravel framework of PHP. The website is supposed to display data from the database of the application.
In regards to above I have the following questions:
As far as I understand, I can either store the requested data in my website database or just show it without storing. What technique do you suggest?
How do I achieve xml data transfer from the database server to the website?
Taking into account that I have experience of development in C#, I assume that I have to develop some web-service that would run on the database server, retrieve the required data and send it to my website. So the web-service has to receive the requests from my Laravel website, retrieve data from database server accordingly and pass the xml response to my website that would finally display it. Am I on the right way? If so, could you please guide me on how to code and bind these parts?
Thank you in advance.
I have to agree with #Serge in the comments - there are many ways to do this because it is a very broad question.
My answer was mostly going to deal with how regularly the third party database was going to be updated but judging from your comments, I'm assuming it will be fairly often? In which case, I would likely connect directly to the third party database from your laravel app using the firebird driver found here: https://github.com/jacquestvanzuydam/laravel-firebird (Please note, I have never used this so I cannot comment on it's quality) instead of writing a C# web service. I don't know much about firebird itself but you will likely want to connect using an SSH tunnel or VPN for security reasons.
Then I would either store data in MySQL if you know it isn't likely to change very often (in this case you would use a laravel command, run on a schedule, to pull data out of firebird every [X] days/hours/minutes depending on the data) or, if the data is likely to change on each potential web request, using some form of caching system (redis, memcache, file cache etc) to speed up the web requests.
Sorry if that isn't particularly helpful - if you can provide more information maybe I can help you out further :)
Good luck!

Windows 8 Store Application Connecting to SQL Online Databse

Ok I have searched and searched for an answer to my problem but can not find a direct answer.
Can someone please guide me in the direction I need to go with step by step solution somewhere that is useful?
My Question:
I built an Windows 8.1 Metro Application that needs to pull data and store data into a database I am hosting in MySQL online but I can not use things like My.SQL.Data.RT because it is not supported (I guess) because I get an error.
How do I connect to my online database to pull information from and store information to it? If I can not do this what options do I have?
Using local databases is not an option because everyone will be storing information in the database and pulling information from it from hundreds of different computers running the application.
If you could point me to a website that I can see it in step by step and please. I am using C#.
Thank you for your help. I have been racking my brain over this because the My.SQL.Data.RT works but the application fails to pass the Windows Store requirements with it pretty dumb if you ask me.
I'm not a Windows 8 store app developer so I am just trying to give suggestions.
From what I know, connecting directly to database server over internet from a client app is NOT A GOOD PRACTICE nowadays. Instead, people provide APIs to do it.
For example, Twitter provides restful APIs, so twitter clients can request http urls and get wanted data in JOSN format. The security of the the connection is ensured by oAuth (so that you don't transfer username and password in http request) and SSL/HTTPS.
In this way, the database connection is hidden from Internet. You will also benefit from the API layer if you want to develop another client on platforms other than Windows, e.g. iOS or Android.
By a quick google search, I found two guides about making a restful api with C#.
http://www.codeproject.com/Articles/112470/Developing-a-REST-Web-Service-using-C-A-walkthroug
http://www.asp.net/web-api/tutorials/hands-on-labs/build-restful-apis-with-aspnet-web-api

Connect to a SQL Database from Android

I want to develop an Android application which would connect to a SQL Database which is already created . We developed this news site :
e-Cmunio. This site is based on a SQL Database that already has a lot of news and stuff in. For now, what we want for our Android app is to connect to that database and show some random news in a listView.
The problem is that I don't know how to connect to it from Android.
I have already read about some WebServices, but I have no idea from where to start.
We ( me and a friend ) are in HighSchool. The site was developed in C#. We are new in Android and java, but we are familiar with algorithms and data structures.
Could you please give me some tutorials and entry-level information about how can we access our DataBase?
Sorry if I hasted your time, but I really have no idea where to start from.
The easiest way is to use PHP to parse ur data to JSon and read that data and parse it in ur Android phone..
SQL to PHP to JSon to read from.
http://www.bin-co.com/php/scripts/sql2json/
Parse JSON to Android
http://www.vogella.com/articles/AndroidJSON/
What you want to do is make a webservice on your server side that connects to your database and returns whatever you want to return in your favorite format(XML / JSON).
Next, on Android(client side) you want to have an AsyncTask to access that webservice and fetch your news and save them to your Android SQLite Database.
Later like you suggested you can load those news from a cursor directly to your listView with a Listview adapter.
You can read about Saving data in SQLite here: http://developer.android.com/training/basics/data-storage/databases.html
You can read about AsyncTask here: http://developer.android.com/reference/android/os/AsyncTask.html
You already have an elaborate answer in connect to sql server from android.
Web services define interface for your website in a standardized way, so that
other websites/applications can access it. It is more extensible and generic solution
then directly accessing server's database.
Simple web service can be just an XML or a JSON file generated after querying your
website with specific parameters. So as an exercise in your case I would implement
handling of specified URL in your C# server code and generate XML file with your
news (query in URL) and then just open your page with this URL on your android app
and read this XML. When your app will become more complex, then you can start moving to
some standard web service solution.

Connect to Access database that links to SharePoint lists using C#

I have an window application in which I am trying to connect to a Access Database that has a table linking to a SharePoint list using OLEDB in C#
My attempts:
Use Access 2007 format for the database and Microsoft.ACE.OLEDB.12.0 for the ConnectionString
Everything works perfectly okay, until there's one guy reports the error "The 'Microsolf.ACE.OLEDB.12.0' provider is not registered on the local machine"
Check: he has Windows x86, Access 2003, but not 2007, and does not have "2007 Office System Driver: Data Connectivity Components" installed
Really troublesome and time-consuming to get these installed (Company's machine)
Use Access 2003 format for the database and Microsoft.ACE.OLEDB.12.0 for the ConnectionString
Same error as the above. So I guess it is the "Microsoft.ACE.OLEDB.12.0" that causes the problem. But I don't know how to get it fixed.
Using Access 2003 format for the database and Microsoft.Jet.OLEDB.4.0 for the ConnectionString
Error on my machine: "Could not find installable ISAM" (I don't have Access 2003, but only Access 2007)
His machine: works perfectly
Please help me point out what I can do to fix this problem without having every one update their Office version to 2007 or having the application check people's Office version before connecting to the Access database.
Thanks in advance.
You as a general rule cannot link to something else that is linking to the data!
If the data sitting on SharePoint why attempt to use Access here? You could never link to an Access database that has linked tables to SQL server, so this makes even LESS sense to hit SharePoint this way.
And worse I don't believe that SharePoint supports oleDB linked tables. While Access does support oldDB, and you trying to connect o Access you want to keep in mind that ADO been rather depreciated. While the Access data engine continues to receive all kinds of new features like complex data support (multi-value SharePoint columns), and things like a new-off line disconnected mode we have for Access 2010 with SharePoint, these features are certainly not appropoate to consume by attempting to link to linked tables. As noted, because Access is linked to SQL server or SharePoint in the past, no one would suggest you now attempt to link to the Access file which then in turn must make web service calls to SharePoint (BTW, Access makes web services calls to SharePoint to consume that data).
Since the data is on SharePoint, why are you attempting to hit some file based "thing" sitting on a local hard drive? Why don't you just hit the SharePoint site as a web service? There are tons of web services and ways to consume SharePoint lists in .net. I see little reason and advantage to dump all that fantastic technology and ability in .net to consume web services and then attempting to read some file based Access database that has links to SharePoint. The only way such a setup makes sense is if your development is primary in Access, and that then DOES make sense to dump the use of c# here and just use Access.
My suggestion is thus to consume the SharePoint lists in c#, and by-pass the Access data engine here.

Categories