我试图在加载IDataReader
对象所包含的信息后,在DataTable
中添加新条目,DbDataReader
具体说明。加载进行得很好,查询到数据库是正确的,我想。如何将新行添加到由IDataReader填充的表中?
当试图添加一个新行我得到了以下信息的ArgumentException
:
Cannot set column 'ID'. The value violates the MaxLength limit of this column.
这是代码,我现在所拥有的:
// Build the query:
DbCommand cmd = dbCon.CreateCommand();
cmd.CommandText = "SELECT ID, Name || ' ' || SurName AS FullName FROM Clients ORDER BY FullName;";
// Execute it:
DbDataReader reader = cmd.ExecuteReader();
// Construct the table out of the query result:
DataTable table = new DataTable();
table .Load(reader);
table.Rows.Add(0, "None");
在数据库中(SQLite的)ID
是INTEGER
的类型,并且Name
和SurName
都是VARCHAR
s。难道我做错了什么? 0
如何违反MaxLength限制?
是否确定在手动添加行的行上引发异常,而不是从读取器加载表的行上引发异常? – 2012-02-22 15:36:56
我这么认为,然后通过Visual Studio调试器执行,这是链接到异常的行。 – Armos 2012-02-22 15:52:37
如果您的ID是非文本列,则应忽略MaxLength属性。 http://msdn.microsoft.com/en-us/library/system.data.datacolumn.maxlength.aspx – 2012-02-22 16:16:57