2014-01-21 33 views
0

我已將文本用作設備名稱的數據類型。同時加入了數據到表單,它拋出一個錯誤:數據類型text和varchar是不相容的等於操作數據類型文本和varchar在相同的運算符中不兼容

try 
{ 
    cmd = new SqlCommand("insert into license1 values(@l_id,@customer_id,@d_id,@device_name,@from,@to)", cn); 

    cmd.Parameters.AddWithValue("@l_id", license_id.Text); 
    cmd.Parameters.AddWithValue("@customer_id", c_comboBox4.Text); 
    cmd.Parameters.AddWithValue("@d_id", d_id_comboBox4.Text); 
    cmd.Parameters.AddWithValue("@device_name", d_name_comboBox5.Text); 
    cmd.Parameters.AddWithValue("@to", DateTime.Parse(date_to.Text)); 
    cmd.Parameters.AddWithValue("@from", DateTime.Parse(date_from.Text)); 

    cn.Open(); 
    a = cmd.ExecuteNonQuery(); 
    if (a > 0) 
    { 
     MessageBox.Show("Data Submitted"); 
    } 
} 
catch (Exception ex) 
{ 
    MessageBox.Show(ex.Message); 
} 
+1

什麼是你的代碼中的'a'? – Nilesh

+0

它只是一個整數變量 – user3201916

+0

'license1'上是否有觸發器?這個錯誤不能來自這個陳述。 –

回答

0

嘗試將device_name列的數據類型更改爲varchar並重新測試您的應用程序

1

我會努力改變這一行

cmd.Parameters.Add("@device_name", SqlDbType.Text).Value = d_name_comboBox5.Text; 

的AddWithValue將字符串值作爲數據類型的NVarChar,看着錯誤消息的文本類型的預期。

您也可以嘗試將列數據類型更改爲nvarchar(MAX)。文本列被認爲是過時的,並將probably removed in future versions of Sql Server

相關問題