簡體   English   中英

從C#中的表單將數據插入SQL Server 2008表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM