【发布时间】:2017-03-22 12:26:03
【问题描述】:
所以我的问题是,我在将这个插入查询写入我的 SQL 服务器时收到一条错误消息。我正在使用 Visual Studie 2017。错误消息:
System.ArgumentException: '没有分配对象类型System.Web.UI.HtmlControls.HtmlInputGenericControl用于托管服务提供者的已知本机类型。'
这发生在我的 cmd.ExecuteNonQuery(); 上,但我尝试过 Scalar 和 Reader。都报错。
我真的希望有人有一个解决方案,这是一个大学项目。
protected void btnRegister_Click(object sender, EventArgs e)
{
string connString = WebConfigurationManager.ConnectionStrings["csPAD"].ConnectionString;
SqlConnection myConnection = new SqlConnection(connString);
if (Page.IsValid)
{
string Study = rbStudy.SelectedValue;
string sqlQuery = "INSERT INTO Registratie ([Firstname], [middlename], [Lastname], [Dateofbirth], [Study], [Email]) VALUES (@Firstname,@middlename,@Lastname,@Dateofbirth,@Study,@Email)";
SqlCommand cmd = new SqlCommand(sqlQuery, myConnection)
{
cmd.Parameters.AddWithValue("@Firstname", txtFirstname.Text);
if (txtmiddlename.Text == "")
{
cmd.Parameters.AddWithValue("@middlename", "");
}
else
{
cmd.Parameters.AddWithValue("@middlename", txtmiddlename.Text);
}
cmd.Parameters.AddWithValue("@Lastname", txtLastname.Text);
cmd.Parameters.AddWithValue("@Dateofbirth", Dateofbirth);
cmd.Parameters.AddWithValue("@Study", Study);
if (txtEmail.Text == "")
{
cmd.Parameters.AddWithValue("@Email", "");
}
else
{
cmd.Parameters.AddWithValue("@Email", txtEmail.Text);
}
myConnection.Open();
int rows = cmd.ExecuteNonQuery();
MessageBox.Show(rows + " rows affected!");
myConnection.Close();
}
}
else
{
lblNotification.Text = "Everything is required.";
}
}
【问题讨论】:
-
Dateofbirth对象是什么? -
旁注:
middlename和Email的 if 语句毫无意义 -
connString的值是否正确? -
你能贴出实际代码吗,看起来这段代码无法编译
-
稍微绕道......在进行这样的临时查询时,您应该明确说明您的数据类型。数据类型并不总是被正确确定。尤其是日期。 blogs.msmvps.com/jcoehoorn/blog/2014/05/12/… 您还应该养成使用 USING 语句包装连接和命令对象的习惯。
标签: c# asp.net sql-server visual-studio