[英]Insert data into an SQL Server 2008 table from a form in C#
這是我所做的:
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
。
您忘記在此行添加.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
cmd.Parameters.AddWithValue("@name", txtnam.Text);
錯誤很簡單。 您忘記獲取txtnam
上的text屬性,因此您傳遞了整個文本框對象而不是其值。
txtnam.text
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.