我使用text作为设备名称的数据类型。在将数据添加到表单中时,会引发错误:数据类型text和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);
}
答案 0 :(得分:1)
我会尝试更改此行
cmd.Parameters.Add("@device_name", SqlDbType.Text).Value = d_name_comboBox5.Text;
AddWithValue将字符串值视为NVarChar数据类型,并查看错误消息,预期为Text类型。
您还可以尝试将列数据类型更改为nvarchar(MAX)
。 TEXT列被认为已过时,将probably removed in future versions of Sql Server
答案 1 :(得分:0)
尝试将device_name
列的数据类型更改为varchar
并重新测试您的应用