C#NO映射存在于对象类型systems.windows.forms.textbox中

时间:2015-07-09 07:58:15

标签: c# sql object types mapping

我知道它在某处,但我找不到错误:

txtDealID.Text = Properties.Settings.Default.CurDealNo.ToString();
string server = Properties.Settings.Default.SQLServer;
string constring = "Data Source=" + server + ";Initial Catalog=Propsys;Persist Security Info=True;User ID=sa;Password=0925greg";
SqlConnection conDataBase = new SqlConnection(constring);
SqlCommand cmdDataBase = new SqlCommand("SELECT * FROM Agents WHERE DealID=@DealID", conDataBase);
cmdDataBase.Parameters.AddWithValue("@DealID", txtDealID);
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = cmdDataBase;
DataTable dbdataset = new DataTable();
sda.Fill(dbdataset);
BindingSource bSource = new BindingSource();
bSource.DataSource = dbdataset;
dataGridView1.DataSource = bSource;
sda.Update(dbdataset);

1 个答案:

答案 0 :(得分:1)

你的问题在这里:

cmdDataBase.Parameters.AddWithValue("@DealID", txtDealID)

事实上,在这里你传递的是SqlCommand而不是文本框中输入的文本,而是文本框本身。

应该是

cmdDataBase.Parameters.AddWithValue("@DealID", txtDealID.Text)

此外,避免使用AddWithValue并使用Add方法覆盖与显式类型的参数。

请参阅Can we stop using AddWithValue already文章,其中介绍了使用AddWithValue时可能出现的问题。