Fáb*_*nes 6 c# auto-increment sql-server-ce
我有一个小问题,现在已经有一段时间了.
在这里:
是否可以临时禁用列ID上的Auto_Increment.
这样我就可以向表中添加一个新行,并在插入行时指定ID值.
然后最后再次启用Auto_Increment,让它像往常一样工作?
如果它可能我怎么能这样做?
表结构非常简单
列名(属性)
ID (Primary Key, Auto Increment, int, not null)
Name (nvarchar(100), not null)
Run Code Online (Sandbox Code Playgroud)
注意:
People
.我真的希望它有可能,它会变得非常方便.
谢谢
编辑
SqlActions SqlActions = new SqlActions();
SqlCeCommand SqlCmd = new SqlCeCommand("SET IDENTITY_INSERT People ON", SqlActions.Connection());
try
{
SqlCmd.ExecuteNonQuery();
}
catch (SqlCeException Error)
{
Console.WriteLine(Error.ToString());
}
string query = "INSERT INTO People SET (ID, Nome) VALUES (@ID, @Nome)";
SqlCeCommand SqlInsert = new SqlCeCommand(query, SqlActions.Connection());
SqlInsert.Parameters.AddWithValue("@ID", 15);
SqlInsert.Parameters.AddWithValue("@Nome", "Maria");
try
{
SqlInsert.ExecuteNonQuery();
}
catch (SqlCeException Error)
{
Console.WriteLine(Error.ToString());
}
Run Code Online (Sandbox Code Playgroud)
连接字符串正在工作,我已经尝试过了.
他报告说:
解析查询时出错.[令牌行号= 1,令牌行偏移= 20,令牌错误= SET]
解决方案 感谢OrbMan
SqlActions SqlActions = new SqlActions();
SqlCeCommand SqlCmd = new SqlCeCommand("SET IDENTITY_INSERT People ON", SqlActions.Connection());
try
{
SqlCmd.ExecuteNonQuery();
string query = "INSERT INTO People (ID, Nome) VALUES (@ID, @Nome)";
SqlCmd.CommandText = query;
SqlCmd.Parameters.AddWithValue("@ID", 15);
SqlCmd.Parameters.AddWithValue("@Nome", "Vania");
SqlCmd.ExecuteNonQuery();
}
catch (SqlCeException Error)
{
Console.WriteLine(Error.ToString());
}
Run Code Online (Sandbox Code Playgroud)
我相信你可以使用SET IDENTITY_INSERT
.我不确定这是否适用于所有版本.
更新2:
试试这个版本:
SqlActions SqlActions = new SqlActions();
SqlCeCommand SqlCmd = new SqlCeCommand("SET IDENTITY_INSERT People ON", SqlActions.Connection());
try
{
SqlCmd.ExecuteNonQuery();
string query = "INSERT INTO People (ID, Nome) VALUES (@ID, @Nome)";
SqlCmd.CommandText = query;
SqlCmd.Parameters.AddWithValue("@ID", 15);
SqlCmd.Parameters.AddWithValue("@Nome", "Maria");
SqlCmd.ExecuteNonQuery();
}
catch (SqlCeException Error)
{
Console.WriteLine(Error.ToString());
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6799 次 |
最近记录: |