因此,我对C#和SQL还是很陌生。我有两个表(Project,Proptype)。这些是表格中的内容:
项目:
属性:
我将PropTypeId
放入一个组合框,该组合框将显示Proptype
列的内容(该列已填充了值Residential
和Industrial
)。
以下是该程序的屏幕截图:Image of program with error.
这是我使用的代码:
SqlConnection sqlcon = new SqlConnection(dbconnectionstring);
try
{
sqlcon.Open();
SqlCommand createcommand = new SqlCommand("INSERT INTO [Project](ProjectName, NumberOfUnits, PropTypeId, Location)" +
"VALUES(@ProjectName, @NumberOfUnits, @PropTypeId, @Location)", sqlcon);
createcommand.Parameters.AddWithValue("@ProjectName", prname.Text);
createcommand.Parameters.AddWithValue("@NumberOfUnits", unitnum.Text);
createcommand.Parameters.AddWithValue("@PropTypeId", prtype.Text);
createcommand.Parameters.AddWithValue("@Location", locationtb.Text);
createcommand.ExecuteNonQuery();
MessageBox.Show("Saved");
sqlcon.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
如果有帮助,我正在使用SQL Server。
运行程序时,它显示错误
将nvarchar值“ Residential”转换为数据类型int时,转换失败。
我希望代码能够自动识别“住宅”的ID为“ 1”,并将其放入Project表中。我想不是那样的。希望有人可以帮助我。
谢谢。
答案 0 :(得分:0)
我在想这个
createcommand.Parameters.AddWithValue("@PropTypeId", prtype.Text);
应该是
createcommand.Parameters.AddWithValue("@PropTypeId", Convert.ToInt32([prtTypeId.Text]));