にIDataReader
オブジェクト(具体的にはDbDataReader
)に含まれる情報を読み込んだ後、新しいエントリを追加しようとしています。読み込みがうまくいって、データベースへのクエリが正しいと思います。IDataReaderで埋められたテーブルに新しい行を追加するにはどうすればよいですか?
私は、以下の情報をArgumentException
を取得し、新しい行を追加しようとしている:データベースに
// 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
:
Cannot set column 'ID'. The value violates the MaxLength limit of this column.
これは私が今持っているコードです。タイプINTEGER
であり、Name
とSurName
の両方がVARCHAR
です。私は何か間違っているのですか? 0
はどのようにしてMaxLengthの制限に違反することができますか?
行を手動で追加する行ではなく、読者からテーブルをロードする行ではなく、例外が発生していますか? –
私はそう考えて、例外にリンクされた行であるVisual Studioデバッガを介して実行します。 – Armos
IDが非テキスト列の場合、MaxLengthプロパティは無視してください。 http://msdn.microsoft.com/en-us/library/system.data.datacolumn.maxlength.aspx –