将数据从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到已知托管提供程序本机类型的映射。

如何清除此错误?

将数据从C#中的窗体插入SQL Server 2008表中

您需要更改以下行:

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