c# - C#:在文本框中查询多列
问题描述
这是我的代码,我希望能够搜索名称,然后从数据库中将名称、状态、member_id 提取到表单中的文本框中。
我得到了可以使用的名称,但是如何获取其他列并将输出解析到带有附加列(member_id、status)的文本框中?假设其他文本框具有标准名称,例如 textbox2、3、4...
string connetionString = null;
SqlConnection connection;
SqlCommand command;
string sql = null;
string sql1 = null;
SqlDataReader dataReader;
connetionString = "Data Source=......"
sql = "SELECT NAME FROM Test_Employee WHERE Name LIKE '" + textBox1.Text.ToString() + "%'";
connection = new SqlConnection(connetionString);
{
connection.Open();
command = new SqlCommand(sql, connection);
dataReader = command.ExecuteReader();
while (dataReader.Read())
{
textBox9.Text = dataReader[0].ToString();
textBox7.Text = dataReader[0].ToString();
}
connection.Close();
}
解决方案
字段Member_Id和Status也在表Test_Employee中吗?您可以将它们添加到您的Select语句中并从您的SqlReader中获取它们,如下面的代码(假设您使用的是c#7及更低版本)。您可以复制并粘贴此代码。
var connectionString = "";
var sql = @"SELECT TOP 1 Name, Member_Id, Status
FROM Test_Employee
WHERE Name LIKE @name + '%'";
using (var connection = new SqlConnection(connectionString))
using (var command = new SqlCommand(sql, connection))
{
command.Parameters.Add("name", SqlDbType.NVarChar, 100).Value = textBox1.Text.ToString();
connection.Open();
var reader = command.ExecuteReader();
if (reader.Read())
{
textBox9.Text = dataReader["Name"].ToString();
textBox7.Text = dataReader["Name"].ToString();
textBox2.Text = dataReader["Member_Id"].ToString();
textBox3.Text = dataReader["Status"].ToString();
}
}
您会注意到,不是将 Textbox1.Text 的值包含在 Select 语句中,而是作为参数添加到SQLCommand对象的Parameters
. 通过这种方式,您的查询免受SQL Injection的影响。如果您想了解更多信息,可以搜索c# sqlcommand 参数以及为什么以这种方式构建数据访问代码非常重要。
另外,请注意我Top 1
在您的 Select 语句中添加了,而不是 using while
,而是使用if
. 这是因为文本框一次只能以易于理解的方式保存 1 个结果。如果您想清楚地显示多个结果,则需要使用除 TextBox 之外的其他控件。
这些using
语句允许您处理连接,因此您不必调用connection.Close()
.
推荐阅读
- javascript - React 为什么我应该删除事件监听器?
- apache-spark - 使用 Spark2 的 Hbase 分布式扫描问题
- mqtt - 订阅发布到 mosquitto 代理的主题数据的方法
- android - 当应用程序在 Android Oreo 中被杀死或从后台删除时如何从通知中获取数据
- matlab - Matlab水平打印图形
- activiti - 一个关于activiti的查询
- html - 在新选项卡 C# MVC 中从 Blob 存储 URL 打开 PDF
- google-analytics - Google Analytics - 显示“新用户”但未显示“用户”
- firebase - Cloud Firestore 函数只返回一个文档?
- console - 邮递员:从输入文件中检索到的数据无法在控制台中记录