使用数据适配器填充数据集
本文关键字:填充 数据集 适配器 数据 | 更新日期: 2023-09-27 18:03:19
代码如下:
SqlCommand command = new SqlCommand();
command.Parameters.AddWithValue("@AccountId", accountNumberLong);
StringBuilder sql = new StringBuilder();
sql.AppendLine("SELECT * FROM T_POSTAGE_DISCOUNT");
sqlQuery = sql.ToString();
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
command.Connection = connection;
command.CommandType = CommandType.Text;
command.CommandText = sqlQuery;
SqlDataAdapter dataAdapter = new SqlDataAdapter(command);
dataAdapter.Fill(dsDiscounts, "Discounts");
}
到这里它工作得很好。我想在这个数据集中添加另一个表。然后我这样做了。
command.Parameters.AddWithValue("@DISCOUNT_LEVEL_NBR",discountLevelNBR);
sql.AppendLine("select * from T_CONTRACT WHERE DISCOUNT_LEVEL_NBR=@DISCOUNT_LEVEL_NBR");
sqlQuery = sql.ToString();
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
command.Connection = connection;
command.CommandType = CommandType.Text;
command.CommandText = sqlQuery;
SqlDataAdapter dataAdapter = new SqlDataAdapter(command);
dataAdapter.Fill(dsDiscounts,"CONTRACT");
}
再次添加所有的表。我想添加合同表到现有的数据集。
(c#)
试试这个
DataTable myTable = new DataTable("MyTable");
adapter.Fill(myTable);
ds.Tables.Add(myTable);
问题是从追加行你做了两次字符串sql,当你写sql.AppendLine("...");
时的字符串sql = "select * from T_CONTRACT WHERE DISCOUNT_LEVEL_NBR=@DISCOUNT_LEVEL_NBR"
.
然后在另一行中,您再次向字符串sql添加命令,因此它变成sql = "select * from T_CONTRACT WHERE DISCOUNT_LEVEL_NBR=@DISCOUNT_LEVEL_NBR" "select * from T_CONTRACT WHERE DISCOUNT_LEVEL_NBR=@DISCOUNT_LEVEL_NBR"
所以很明显,为什么它带来了所有的桌子。
所以最好使用两个字符串sql1, sql2。