【发布时间】:2014-06-18 19:50:35
【问题描述】:
我正在编写的 C# 程序中有一个下拉(组合)框。 - 它从我的数据库中的表中提取数据:
Application_Id | Application
---------------|--------------
1 |Name1
2 |Name2
3 |Name3
下拉框的代码如下所示:
SqlConnection conn = new SqlConnection(SqlCon.DBCON);
conn.Open();
SqlCommand sc = new SqlCommand("select * from Application", conn);
SqlDataReader reader;
reader = sc.ExecuteReader();
DataTable dt = new DataTable();
dt.Columns.Add("ApplicationId", typeof(int));
dt.Columns.Add("Application_Name", typeof(string));
dt.Load(reader);
App.ValueMember = "ApplicationId";
App.DisplayMember = "Application_Name";
App.DataSource = dt;
conn.Close();
基本上,用户选择应用程序的名称并按下“插入”按钮。 我希望它随后将该应用程序的相关 ID 发布到我数据库中的另一个表中。 (帐户表)。 - 我确实将此设置作为主外键关系,但为了测试我删除了该关系。
我插入数据库的代码是这样的:
SqlConnection conn = new SqlConnection(SqlCon.DBCON);
conn.Open();
using (SqlCommand AQuery = conn.CreateCommand())
{
AQuery.CommandText = "INSERT INTO Accounts(AccountName,Application_Id,num_Users) VALUES(@param1,@param2,@param3)";
AQuery.Parameters.Add(new SqlParameter("@param1", account.Text));
AQuery.Parameters.Add(new SqlParameter("@param2", App.ValueMember));
AQuery.Parameters.Add(new SqlParameter("@param3", users.Text));
AQuery.ExecuteNonQuery();
}
我的问题是,当我按下插入时出现异常。 (一切都编译)
异常状态:
将 nvarchar 值“ApplicationId”转换为数据类型 int 时出错。
-我试过了: 投掷 转换
在插入语句之前在应用程序中将valuemember转换为int,仍然是同样的错误。
我做错了什么? - 它不是试图将实际的字符串 'ValueMember' 转换为 int 是吗??
【问题讨论】:
-
SQL Server 中的 ApplicationId 是什么数据类型?
标签: c# sql sql-server sql-insert