使用数据适配器填充数据集

本文关键字:填充 数据集 适配器 数据 | 更新日期: 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。