为啥 SqlDataAdapter 的填充不允许我添加与外观具有相同行值的行?
Posted
技术标签:
【中文标题】为啥 SqlDataAdapter 的填充不允许我添加与外观具有相同行值的行?【英文标题】:Why does SqlDataAdapter's fill not allow me to add a row with the same its own rows' value as appearance?为什么 SqlDataAdapter 的填充不允许我添加与外观具有相同行值的行? 【发布时间】:2015-03-20 08:32:46 【问题描述】:为什么 SqlDataAdapter 的 Fill 方法不允许我添加与外观具有相同行值的行?我无法成功地提供出现在同一行的行的值,并在 DataTable 中填充了一个。 Check this out:
using (SqlDataAdapter a = new SqlDataAdapter("SELECT SIPNO, SERINO, TARIH FROM SNOHAREKETLER WHERE Cast(TARIH as DATE) BETWEEN '2015/03/19' AND '2015/03/20' AND (TEZNO = 'T23' OR TEZNO = 'T31') AND CIKTI is null", c))
// 3
// Use DataAdapter to fill DataTable
DataTable t = new DataTable();
a.Fill(t);
t.Columns.Add("MyColumn", typeof(string));
DataRow workRow;
int iGetCount = t.Rows.Count;
for (int i = 0; i <= iGetCount - 1; i++)
workRow = t.NewRow();
workRow["MyColumn"] = i;
t.Rows.Add(workRow);
// 4
// Render data onto the screen
dataGridView1.DataSource = t;
【问题讨论】:
您的代码中有任何异常或错误消息吗? 您正在向现有行集合添加行。是否要更新现有行并将每个 EXISTING 行的新列设置为该行的索引?可能您的代码会失败,因为在添加行时,您需要为每一列提供不能保留为 NULL 值的值 Soner,什么都没有扔掉。 史蒂夫,没有任何失败。代码工作正常。请检查屏幕,它可以提供我在帖子中添加的想法。 DataGridView 不在允许用户做某事的模式下。 【参考方案1】:这是我的问题的解决方案。我搜索并咨询了某人。我的问题是尝试添加 NewRow,这导致了问题。
DataTable t = new DataTable();
a.Fill(t);
DataColumn newCol = new DataColumn("NewColumn", typeof(string));
newCol.AllowDBNull = true;
t.Columns.Add(newCol);
foreach (DataRow row in t.Rows)
row["NewColumn"] = "With String";
dataGridView1.DataSource = t;
【讨论】:
以上是关于为啥 SqlDataAdapter 的填充不允许我添加与外观具有相同行值的行?的主要内容,如果未能解决你的问题,请参考以下文章
使用 SqlDataAdapter 用新名称填充数据集中的表,代码不完全运行且没有错误
使用 SqlDataAdapter 填充 DataTable 时,CommandTimeout 不起作用
SQLDataAdapter 用主键填充数据表会产生错误并退出子
如何在 where 子句上基于 SqlCommand 或 SqlDataAdapter 填充 datagridview? SqlDataAdapter 不适用于哪里?