2017-06-02 61 views
1

我需要用它来updatenote column in sql tableC#SQL更新查询

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(); 
} 

在VS FR - 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查询无线将已经与NVarChar (max) ??

我已经尝试

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

但还是SQL,并且不需要改变。

+0

你'SAgenda_X1'和其他你有'Agenda_X1'作为数据库名称。你是否只尝试过模式和表名,比如'UPDATE [dbo]。[Order] SET Note' ... – Nino

回答

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(); 
}