2017-06-02 9 views
1

私はupdateにVS FRでnote column in sql tableC#のSQLのUPDATEクエリ

using (SqlConnection conn = new SqlConnection()) 
{ 
    SqlConnection connorder = new SqlConnection("Data Source=P4\\WORK;Initial Catalog=Agenda_X1;Persist Security Info=True;User ID=sa;Password=xxx"); 
    connorder.Open(); 

    string ordernrsql = lbOrderNr.Text; 
    string newstate = lbNewState.Text; 

    SqlCommand commandorder = new SqlCommand("UPDATE [Agenda_X1].[dbo].[Order] SET Note = @lbNewState WHERE OrderNr= @ordernumber", connorder); 
    commandorder.Parameters.Add("@ordernumber", SqlDbType.NVarChar).Value = ordernrsql; 
    commandorder.Parameters.Add("@lbNewState", SqlDbType.NVarChar).Value = newstate; 
    connorder.Close(); 
} 

これを使用する必要がある - SQL Commnadビジュアライザはこの

`DECLARE @ordernumber NVarChar; 
SET @ordernumber = 'OPT1710420'; 
DECLARE @lbNewState NVarChar; 
SET @lbNewState = 'Order changed 2017.06.02'; 

UPDATE [SAgenda_X1].[dbo].[Objednavky_ObjednavkaPrijata] SET Note= @lbNewState WHERE OrderNr = @ordernumber 

しかし、SQLでこのdidn`tの作品のように見えるとすべき

`DECLARE @ordernumber NVarChar (max); 
    SET @ordernumber = 'OPT1710420'; 
    DECLARE @lbNewState NVarChar (max); 
    SET @lbNewState = 'Order changed 2017.06.02'; 

    UPDATE [SAgenda_X1].[dbo].[Objednavky_ObjednavkaPrijata] SET Note= @lbNewState WHERE OrderNr = @ordernumber 

また、最終的なSQLクエリwiを実行する必要がありますかすでにNVarChar (max)であるでしょうか?

私はすでに

commandorder.Parameters.Add("@ordernumber", SqlDbType.NVarChar, -1).Value = ordernrsql; 
commandorder.Parameters.Add("@lbNewState", SqlDbType.NVarChar, -1).Value = newstate; 

を試してみたが、まだ変更せずにSQL。

+0

のようなコマンドを実行し、他には、データベース名として' Agenda_X1'を持っています。 'UPDATE [dbo]。[Order] SET Note'のように、スキーマとテーブル名だけで試してみましたか? – Nino

答えて

1

はちょうどあなたが `SAgenda_X1`を持って1つのクエリでcommandorder.ExecuteNonQuery();

using (SqlConnection conn = new SqlConnection()) 
{ 
    SqlConnection connorder = new SqlConnection("Data Source=P4\\WORK;Initial Catalog=Agenda_X1;Persist Security Info=True;User ID=sa;Password=xxx"); 
    connorder.Open(); 

    string ordernrsql = lbOrderNr.Text; 
    string newstate = lbNewState.Text; 

    SqlCommand commandorder = new SqlCommand("UPDATE [Agenda_X1].[dbo].[Order] SET Note = @lbNewState WHERE OrderNr= @ordernumber", connorder); 
    commandorder.Parameters.Add("@ordernumber", SqlDbType.NVarChar).Value = ordernrsql; 
    commandorder.Parameters.Add("@lbNewState", SqlDbType.NVarChar).Value = newstate; 

    commandorder.ExecuteNonQuery(); 

    connorder.Close(); 
}