关于 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 处于编辑模式 (*)。我正在添加一个新行。一旦用户尝试在新行中输入一些数据,应该已经填充了一个序列号。
谢谢孙