gpt4 book ai didi

c# - SQL Server 紧凑插入

转载 作者:行者123 更新时间:2023-12-02 15:38:02 24 4
gpt4 key购买 nike

我想将数据插入sql server Compact版,数据库表截图是Here >>> 我想在用户中添加数据添加脚本如下

SqlCeConnection Con = new SqlCeConnection();
Con.ConnectionString = "Data Source = 'Database.sdf';" +
"Password='Password';";
Con.Open();
int Amount=Convert.ToInt32(AmBox.Text),
Code=Convert.ToInt32(MCode.Text),
Num=Convert.ToInt32(MNum.Text);
string Name=Convert.ToString(NBox.Text),
FName=Convert.ToString(SOBox.Text),
Address=Convert.ToString(AdBox.Text);

SqlCeCommand Query =new SqlCeCommand("INSERT INTO Users VALUES " +
"(++ID,Name,FName,Address,Code,Num,Amount)",Con);
Query.ExecuteReader();

运行时会生成错误,提示“列名称无效 [节点名称(如果有)=,列名称=ID]

我不知道问题所在,请告诉我,谢谢!

最佳答案

您应该将代码更改为这样的内容

using(SqlCeConnection Con = new SqlCeConnection("Data Source = 'Database.sdf';" + 
"Password='Password';")
{
Con.Open();
SqlCeCommand Query = new SqlCeCommand("INSERT INTO Users " +
"(Name,FName,Address,MCode,MNum,Amount) " +
"VALUES (@Name,@FName,@Address,@Code,@Num,@Amount)",Con);

Query.Parameters.AddWithValue("@Name", NBox.Text);
Query.Parameters.AddWithValue("@FName", SOBox.Text));
Query.Parameters.AddWithValue("@Address",AdBox.Text));
Query.Parameters.AddWithValue("@Code", Convert.ToInt32(MCode.Text));
Query.Parameters.AddWithValue("@Num", Convert.ToInt32(MNum.Text));
Query.Parameters.AddWithValue("@Amount" , Convert.ToInt32(AmBox.Text));
Query.ExecuteNonQuery();
}
  • using 语句保证正确处置连接
  • 参数集合避免Sql注入(inject)攻击和引用问题
  • 使用ExecuteNonQuery,因为这是一个插入查询。
  • 删除了++ID,它不是传递到数据库的有效值

如果 ID 字段是 Identity 列,则您不会从代码传递任何值,而是让数据库计算下一个值。
另外,我不确定您是否真的需要在数据源和密码 key 周围的连接字符串中使用单引号。

编辑---有时.SDF 数据库可能位于不同的文件夹中。(现代操作系统阻止在应用程序文件夹中写入)。
在这种情况下,需要在连接字符串中设置 SDF 文件的路径。
例如,SDF 可以位于 C:\ProgramData 目录的子文件夹中。

string conString = "Data Source=" + 
Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData),
"MyAppData\\database.sdf") + ";Password=yourPassword;";

关于c# - SQL Server 紧凑插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11694623/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com