So erstellen Sie eine .NET-web-service zum einfügen von Daten in SQL Server 2008
Ich finde es schwierig zu implementieren .NET-web-service zum einfügen von Daten in meiner Datenbank in SQL Server 2008 erstellt . Ich komme nach der Implementierung folgenden code :
namespace DataService
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
//[System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld(String entity)
{
String firstName = "";
SqlConnection myConnection = new SqlConnection(
@"Data Source=.\SQLEXPRESS;" +
@"Initial Catalog=student;User ID=sa;Password=123");
try
{
myConnection.Open();
SqlCommand myCommand = new SqlCommand();
myCommand.Connection = myConnection;
myCommand.CommandText = "insert into stud values " +
"stud_name = '" + firstName + "'";
SqlDataReader myReader = myCommand.ExecuteReader();
//while
if (myReader.Read())
{
firstName = myReader["stud_name"].ToString();
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
myConnection.Close();
}
return firstName;
}
}
}
Hier Unternehmen ist das JSONArray ich erhalte in der form:
[{"key0":"john","key2":"ann","key1":"joe"}]
Ich das einfügen muss jeder Wert für z.B. "john" in der Datenbank-Tabelle.
- Was ist die Ausnahme? Hat Ihr aspnet-Arbeiter haben alle erforderlichen privilegues tatsächlich Zugriff auf die db? Auch Sie führen ein Leser, warum nicht führen Sie eine Abfrage nicht. Auch, wickeln Sie die Verbindung in einem mit.
- Ja es gibt viele Dinge, die sein könnten, was hier passiert. Debuggen und finden Sie heraus, was die Ausnahme ist. Es ist wohl so @UrbanEsc gesagt, dass Sie entweder mit ungültigen Berechtigungen als service für den Zugriff auf die DB, oder Sie können anstrengend sein die DB-connection-pool, indem Sie nicht die Dispose()-die ing-verbindungen zu befreien, Sie in den pool schneller.
- Ich bin immer eine Ausnahme für die insert-Abfrage . Ich glaube nicht, knw, wie das ausführen einer Abfrage nicht . U kann mir sagen wie das geht ? Btw , ich habe die Zugriffsrechte für die Datenbank in SQL Server . Ich arbeite auf localhost. Die Einfügung Teil ist mir ein problem
- Sollten Sie mit der Serialisierung der Daten, die Sie erhalten, mit etwas
Newtonsoft.Json
- was ist Newtonsoft.Json ? Wie kann ich es nutzen ? Was wird passieren, wenn ich das serialisieren der JSONArray ?
- Was konkret ist die Ausnahme?
- Sie erhalten C#.NET Objekte, die Sie mit arbeiten können. json.codeplex.com
- Der Frage Titel ist missleading; seine Sie ein SQLCommand-insertion problem, nicht ein JSON-oder webservices Problem.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Parth_90:
Ersten, Sie sind immer ein JSONArray von der client-Seite, ich schlage vor, Sie Deserialisiert werden Sie zunächst in eine Liste
Dann können Sie jeden Datensatz in der Tabelle, indem Sie entweder die Schleife durch Sie und umschließt alles in einer Transaktion.
Verbesserung: Schließen Sie die insert-Anweisungen in einer SQLTransaction.
BEARBEITEN: Hinzufügen einiger code demonstriert, wie Deserialisieren Beispiel JSON-string in die Frage:
Müssen Sie führen Ihren Befehl mit ExecuteNonQuery(); ExecuteReader ist, wenn Sie eine select, um Daten aus der Datenbank.