Ausführen einer update-gespeicherte Prozedur in C#

Muss ich wissen, wenn ich Schreibe, die gespeicherte Prozedur ordnungsgemäß und Wenn der C# - code für die Ausführung korrekt ist. aus irgendeinem Grund ist der Fehler zurückgegeben wird, da ist Falsche syntax in der Nähe 'c16b'. Alte Fehler

Der neue Fehler ist jetzt: Prozedur oder Funktion 'sptimeupdate' erwartet parameter '@Datum', der nicht angegeben wurde.

nvarchar-Zeichenfolge für die überprüfung und Aktualisierung der in der Spalte ClientID ist 3fc8ffa1-c16b-4d7b-9e55-1e88dfe15277, aber der Teil in Fett ist nur zu zeigen, in der debug-test-intel-Sinn in der Fehlerbehandlung

ALTER PROCEDURE sptimeupdate
    @id nvarchar(50),
    @date datetime
AS
BEGIN
    SET NOCOUNT ON;
    UPDATE ClientTable
    SET Today_Date=(@date)
    WHERE ClientID=(@id)
END

//--------------above stored procedure--------------------------------
//--------------Executing the stored procedure in C#

 IEnumerable<XElement> searchClientID =
 from clientid in main.XPathSelectElements("Network/ClientID")
 where (string)clientid.Attribute("id") == IntializedPorts[i].ToString()
 select clientid;

foreach (string clientid in searchClientID)
  {
     for (int up = 0; up < IntializedPorts.Count(); up++)
     {
          //Update the current time in the clientid tble.
          //Renames the table copy for groups
      try
       {
         string[] Clientid; //client id array
         Clientid = new string[IntializedPorts.Count()]; //Intialization of the array
         Clientid[up] = clientid.ToString();
         DateTime td = Convert.ToDateTime(toolDate.Text); //Just added a datetime object withdate
 SqlConnection sqlConnectionCmdString = new SqlConnection(@"Data=.\SQLEXPRESS;AttachDbFilename=C:\Users\Shawn\Documents\Visual Studio 2010\Projects\Server\database\ClientRegit.mdf;Integrated Security=True;User Instance=True");

   //EXECUTE THE STORED PROCEDURE sptimedate
   //string UpdateCommand = "sptimeupdate" + Clientid[up].ToString() + toolDate.Text;
   string UpdateCommand = "sptimeupdate" + "'" + Clientid[up].ToString() + "'" + "'" +td.ToString()+ "'"; //this is the new UpdateCommand string as to pass parameters to stored procedure 
    SqlCommand sqlRenameCommand = new SqlCommand(UpdateCommand, sqlConnectionCmdString);

    sqlConnectionCmdString.Open();
    sqlRenameCommand.ExecuteNonQuery();
    sqlConnectionCmdString.Close();
  }
  catch(DataException ex)
  {                                                                                                 MessageBox.Show("Failed to UpdateCurrentTime","DataError",MessageBoxButtons.OK,MessageBoxIcon.Error);
  }

 }

}
  • Wenn Sie könnten, auch könnten Sie bitte zeigen, im code für coverting die SQL-Daten-Verbindungs-string in eine Globale Zeichenfolge, so dass es gefunden werden kann auf jedem computer, anstatt nur von mir? Dank
  • Ok, ich änderte den code etwas und jetzt gibt mir einen anderen Fehler , Ihr zu sagen, die geben nicht die datetime in der datetime-parameter.
InformationsquelleAutor shawn | 2014-10-23
Schreibe einen Kommentar