C# 使用SqlDataReader填充多个文本框
我正在尝试使用我的数据库信息填充11个文本框C# 使用SqlDataReader填充多个文本框,c#,sql,sqldatareader,C#,Sql,Sqldatareader,我正在尝试使用我的数据库信息填充11个文本框 private void button5_Click(object sender, EventArgs e) { SqlConnection CN = new SqlConnection(); CN.ConnectionString = cons; try { CN.Open(); SqlCommand cmd = new SqlCommand("SELECT FROM List
private void button5_Click(object sender, EventArgs e)
{
SqlConnection CN = new SqlConnection();
CN.ConnectionString = cons;
try
{
CN.Open();
SqlCommand cmd = new SqlCommand("SELECT FROM Lista1 WHERE DescripcionNombre = "
' + comboBox1.text + '
"",
CN)
;
SqlDataReader myReader = cmd.ExecuteReader();
}
catch
{
MessageBox.Show("You failed!");
}
}
它总是失败,甚至不能正确地完成这项任务。…首要任务是正确地写下这一行:
SqlCommand cmd = new SqlCommand("SELECT FROM Lista1 WHERE DescripcionNombre = "' + comboBox1.text + '"", CN);
这不是有效的SQL或C。您需要指定要从表中检索的列。如果需要所有列,则使用通配符。下一个任务是学习如何连接字符串。如果希望单引号成为字符串文字的一部分,那么它们必须位于双引号内
SqlCommand cmd = new SqlCommand("SELECT * FROM Lista1 WHERE DescripcionNombre = '" + comboBox1.text + "'", CN);
这是很基本的东西。你应该花些时间阅读一两篇教程
完成后,您需要从数据读取器中实际读取数据。我可以帮忙。注意在这些示例中使用参数而不是字符串连接?你可以了解更多
您没有在SELECT中选择任何列或表达式
单引号和双引号在连接中向后
您应该养成使用参数而不是连接SQL的习惯,这有几个原因,其中一个原因是SQL注入漏洞
有效的声明是:
SqlCommand cmd = new SqlCommand("SELECT * FROM Lista1 WHERE DescripcionNombre = '"
+ comboBox1.text
+ "'", CN);
错误在这行代码中
SqlCommand cmd = new SqlCommand("SELECT FROM Lista1 WHERE DescripcionNombre = "' + comboBox1.text + '"", CN);
要么像这样
SqlCommand cmd = new SqlCommand("SELECT * FROM Lista1 WHERE DescripcionNombre = '" + comboBox1.text + """, CN);
SqlCommand cmd = new SqlCommand("SELECT * FROM Lista1 WHERE DescripcionNombre = '" + comboBox1.text + "'", CN);
或
由于您没有选择任何列,因此无法按预期工作
在侧注中,传递参数值,而不是直接从字段值传递值。这样你就可以避免
您忘了提到在查询中需要获取的列名 始终使用参数化查询 但是您的查询应该是这样的
SqlCommand cmd = new SqlCommand("SELECT * FROM Lista1 WHERE DescripcionNombre = '" + comboBox1.text + """, CN);
SqlCommand cmd = new SqlCommand("SELECT * FROM Lista1 WHERE DescripcionNombre = '" + comboBox1.text + "'", CN);
欢迎来到StackOverflow。请更详细地说明它是如何失败的,包括发布完整的堆栈跟踪。您是否能够通过命令提示符或GUI界面程序访问数据库?选择*或选择
SqlCommand cmd = new SqlCommand("SELECT * FROM Lista1 WHERE DescripcionNombre=@DescripcionNombre, CN);
cmd.Parameters.AddWithValue("@DescripcionNombre", comboBox1.text);
SqlCommand cmd = new SqlCommand("SELECT * FROM Lista1 WHERE DescripcionNombre = '" + comboBox1.text + "'", CN);