我試圖在加載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