c# - 返回多行
问题描述
请检查以下代码:
public static DataTable ExecuteDataTable(string sql, params SqlParameter[] parameters)
{
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
cmd.Parameters.AddRange(parameters);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet dataset = new DataSet();
adapter.Fill(dataset);
return dataset.Tables[0];
}
}
}
此函数仅返回一行。如果我的数据库中有很多行并且需要将其添加到组合框中,我应该如何修改我的代码?
string sql = "select country from CarCountry";
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
cmd.Connection = conn;
SqlDataReader DR = cmd.ExecuteReader();
while (DR.Read())
{
combobox1.Items.Add(DR[0]);
}
}
}
我使用上面的代码在组合框中添加项目。我想写一个函数来替换它...
解决方案
您的代码返回一个DataTable,而不是DataRow。这很好,但如果你想获取 的行,DataTable
它是.DataTable
下面使用您的方法获取一个DataTable
,循环通过它DataRows
并将一个项目添加到您的comboBox1
. 此项是Username
从数据库中获取的每一行的值。(当然你SQL
的不同,但这只是一个例子。)
public static void Main(string [] args)
{
PopulateComboBox(); // Will kick off everything.
}
public static void PopulateComboBox()
{
DataTable table = ExecuteDataTable("SELECT Username FROM Users WHERE firstname = @firstname", new SqlParameter("Bob", SqlDbType.VarChar);
foreach(DataRow row in table.Rows)
{
comboBox1.Items.Add(row["Username"].ToString());
}
}
public static DataTable ExecuteDataTable(string sql, params SqlParameter[] parameters)
{
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
cmd.Parameters.AddRange(parameters);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet dataset = new DataSet();
adapter.Fill(dataset);
return dataset.Tables[0];
}
}
}
推荐阅读
- web - How to redirect from https non www to https www?
- python-3.x - 在python中处理两个不同大小的数据框
- tensorflow - Combining user specific TensorFlow models into one, based on the userId
- python - txt 文件中第一个单词的总数
- c# - 如何控制 Web API 中用户对特定操作的活动请求数?
- mysql - 使用 docker-compose 运行 MySql;登录错误:“服务器请求客户端未知的身份验证方法”
- sql - 两个查询有何不同?两者都给出相同的结果
- android - svn 与分支中重命名的目录合并
- mongodb - 案例类的 Scala mongo 驱动程序自定义编解码器
- angular - 如何在角度 5 中关闭模态