Sqliteの挿入または置換コマンドについて。
存在しない場合は挿入を行っています。挿入/更新された値は、データテーブルにバインドされたdatagridviewから取得されます。データテーブルには、主キーであるTID列があります。Tname、TUtility...などの他の列もあります。
更新ステートメントの場合、TIDには値があり、適切に機能します。ただし、挿入ステートメントの場合、シリアル番号(TID列)が自動的に入力されるようにします。
private void SaveData(DataGridView dgv)
{
using (SQLiteConnection conn = new SQLiteConnection(connString))
{
conn.Open();
dt = dt.GetChanges();
if (dt.Rows.Count > 0)
{
int dtlength = dt.Rows.Count;
DataRow[] arr = new DataRow[dtlength];
dt.Rows.CopyTo(arr, 0);
SQLiteCommand upCmd = new SQLiteCommand(
@"INSERT OR REPLACE
INTO
[Table1](
[TID],
[TName],
[TUtility],
[TType])values(@TID,@Tname,@TUtility,@TType),conn);
for (int i = 0; i < arr.Length; i++)
{
upCmd.Parameters.AddWithValue("@TID", Convert.ToInt32(arr[i]["SNo"]));
upCmd.Parameters.AddWithValue("@TName", arr[i]["Utility"].ToString());
upCmd.Parameters.AddWithValue("@TUtility", arr[i]["Plantname"].ToString());
upCmd.Parameters.AddWithValue("@TType", arr[i]["PlantType"].ToString())
da.UpdateCommand = upCmd;
this.da.UpdateCommand.ExecuteNonQuery();
}
ユーザーが新しい行を挿入したときにシリアル番号が自動的に入力されるように、このTID値を追加するにはどうすればよいですか。つまり、現在DGVに4行あるとします。DGVは編集モード(*)です。新しい行を追加しています。ユーザーが新しい行にデータを入力しようとすると、シリアル番号がすでに入力されているはずです。
ありがとうサン