将数据从C#中的窗体插入SQL Server 2008表中
本文关键字:SQL 插入 Server 2008 表中 窗体 数据 | 更新日期: 2023-09-27 18:26:45
这就是我所做的:
protected void btnsave_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("Data Source=user-ade4de77d3;Initial Catalog=test;Persist Security Info=True;uid=sa;pwd=sql2008");
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
con.Open();
cmd.CommandText = ("INSERT into person VALUES (@empid,@name,@sex,@mstatus,@empstat,@dob,@doh,@dor,@dot)");
cmd.Parameters.AddWithValue("@empid", txtid.Text);
cmd.Parameters.AddWithValue("@name", txtnam);
cmd.Parameters.AddWithValue("@sex", dpsex.SelectedValue);
cmd.Parameters.AddWithValue("@mstatus", dpmstat.SelectedValue);
cmd.Parameters.AddWithValue("@empstat", dpstatus.SelectedValue);
cmd.Parameters.AddWithValue("@dob", txtdob.Text );
cmd.Parameters.AddWithValue("@doh", txtdoh.Text );
cmd.Parameters.AddWithValue("@dor", txtdor.Text );
cmd.Parameters.AddWithValue("@dot", txtdot.Text );
cmd.ExecuteNonQuery();
con.Close();
}
我收到这样的错误:
不存在从对象类型System.Web.UI.WebControls.TextBox到已知托管提供程序本机类型的映射。
如何清除此错误?
您需要更改以下行:
cmd.Parameters.AddWithValue("@name", txtnam.Text);
因为您的版本在末尾缺少.Text
。
您可能需要txtnam。文本
cmd.Parameters.AddWithValue("@name", txtnam.Text);
您忘记在以下行添加.Text
:
cmd.Parameters.AddWithValue("@name", txtnam);
将其更改为:
cmd.Parameters.AddWithValue("@name", txtnam.Text);
您的线路
cmd.Parameters.AddWithValue("@name", txtnam);
应该是
cmd.Parameters.AddWithValue("@name", txtnam.text);
我认为问题出在这一行:
cmd.Parameters.AddWithValue("@name", txtnam);
您试图将参数的值设置为文本框本身,而不是其.Text
属性!
使用这个替代:
cmd.Parameters.AddWithValue("@name", txtnam.Text);
错误很简单。您忘记获取txtnam
上的text属性,所以您传递的是整个textbox对象,而不是它的值。
txtnam.text