【发布时间】:2013-11-26 11:13:29
【问题描述】:
我有一个我更新和填充的数据网格视图。但是我在datagridview的列(ID)中搜索值(returnID)的部分说“找不到名为ID的列。 参数名称:columnName" 而且我似乎无法让它工作。如果有人有任何帮助,非常感谢。
代码:
private void Application_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'registrationDataSet1.TestDB' table. You can move, or remove it, as needed.
this.testDBTableAdapter.Fill(this.registrationDataSet1.TestDB);
textBox1.Select();
}
private void DataTable_Connection(object returnName, string returnID)
{
String varID;
Object varName;
varID = textBox1.Text.Replace(@"L", "").ToString();
varName = returnName;
OleDbConnection OLEDB_Connection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\Registration.accdb");
OleDbCommand updateCmd = new OleDbCommand();
try
{
updateCmd.CommandText = "INSERT INTO TestDB ([Name], [ID]) VALUES (@NAME, @ID)";
updateCmd.Parameters.AddWithValue("@Name", varName);
updateCmd.Parameters.AddWithValue("@ID", varID);
OLEDB_Connection.Open();
updateCmd.Connection = OLEDB_Connection;
updateCmd.ExecuteNonQuery();
OLEDB_Connection.Close();
}
catch
{
}
textBox1.Clear();
int index = -1;
DataGridViewRow row = DataGridView1.Rows
.Cast<DataGridViewRow>()
.Where(r => r.Cells["ID"].Value.ToString().Equals(returnID))
.First();
index = row.Index;
}
private void Register_Selection(object sender, KeyPressEventArgs e)
{
SqlConnection DBConnection = new SqlConnection("Data Source=DATABASE;Initial Catalog=imis;Integrated Security=True");
SqlCommand cmd = new SqlCommand();
String returnValue;
Object returnName;
Object returnID;
string txtend = textBox1.Text;
if (e.KeyChar == 'L')
{
e.Handled = true;
DBConnection.Open();
}
if (DBConnection.State == ConnectionState.Open)
{
if (textBox1.Text.Length != 6) return;
{
cmd.CommandText = ("SELECT last_name +', '+ first_name from name where id =@Name");
cmd.Parameters.Add(new SqlParameter("Name", textBox1.Text.Replace(@"L", "")));
cmd.CommandType = CommandType.Text;
cmd.Connection = DBConnection;
returnValue = cmd.ExecuteScalar() + "\t " + textBox1.Text.Replace(@"L", "");
returnName = cmd.ExecuteScalar();
returnID = textBox1.Text.Replace(@"L", "");
DBConnection.Close();
DataTable_Connection(returnName, returnID.ToString());
this.testDBTableAdapter.Fill(this.registrationDataSet1.TestDB);
}
}
}
【问题讨论】:
-
你能发布你的绑定代码吗?
-
确保该行包含一个名称为 ID 的列
-
@James,我已经对其进行了编辑以显示我的整个代码。
-
@RyanGillooly 这就是问题所在,您正在 SQL Server 数据库中查询一个不存在的 ID 列。
-
@RyanGillooly 不,您正在创建一个全新的连接并直接查询数据库。如果您想搜索网格视图的内容,您需要通过 UI 组件执行此操作 - 参见 this answer 示例。
标签: c# datagridview oledb datagridviewcolumn