gpt4 book ai didi

c# - sql语句没有将任何数据保存到表中

转载 作者:行者123 更新时间:2023-11-30 15:02:07 25 4
gpt4 key购买 nike

每当我执行我的 C# 代码时,一切都很顺利,没有编译器错误,什么都没有。但是当我在服务器资源管理器中查看我的表时,没有插入任何内容。重新启动 Visual Studio,仍然没有。

我去调试,在它执行 ExecuteNonQuery() 之前查看了 cmd 字符串,该字符串仍然是 @itmId,... 等。不确定这是否会影响它。有帮助吗?

try
{
Item workingItem = mItemList.Items[itemCombo.SelectedIndex - 1] as Item;
SqlCeConnection sc = new SqlCeConnection(SalesTracker.Properties.Settings.Default.salesTrackerConnectionString);
SqlCeCommand cmd = new SqlCeCommand("INSERT INTO Sales VALUES(@itmId, @itmNm,@fstNm, @date,@prft, @commision)", sc);
cmd.Parameters.AddWithValue("@itmId", workingItem.ItemId);
cmd.Parameters.AddWithValue("@itmNm", workingItem.ItemName);
cmd.Parameters.AddWithValue("@fstNm", logedSalesmen.ID);
cmd.Parameters.AddWithValue("@date", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"));
cmd.Parameters.AddWithValue("@prft", workingItem.Profit);
cmd.Parameters.AddWithValue("@commision", workingItem.Commision);
sc.Open();
cmd.ExecuteNonQuery();
sc.Close();
MessageBox.Show("Save successfull");
this.Close();
}
catch (Exception exc)
{
MessageBox.Show(exc.Message);
}

编辑:所以这是使用临时调试数据库的问题,我使用 select count(0) 来解决这个问题。但我不确定我应该在我的连接字符串中使用什么来修复它。

最佳答案

这里最常见的错误实际上是 部署 问题 - 即有 2 个不同的数据库文件在运行。特别是,通常您正在调试(等)的数据库文件通常是“bin/debug”或类似文件中的文件,并且每次构建时都会被覆盖。但是人们经常查看以查看更改的文件是他们项目树中的文件。

确保您正在查看正确的文件。

代码看起来不错;参数仍然是参数这一事实完全符合预期并且是正确的。如果你想要一种验证插入的简单方法,那么只需检查

SELECT COUNT(1) FROM Sales 

插入前后;我预计它会增加。

同时检查您是否正在关闭并干净地处理连接(以防这只是一个在进程终止之前没有写入的缓冲更改)。 sccmd 都是IDisposable,所以你应该真正使用using:

using(SqlCeConnection sc = new SqlCeConnection(
SalesTracker.Properties.Settings.Default.salesTrackerConnectionString))
using(SqlCeCommand cmd = new SqlCeCommand(
"INSERT INTO Sales VALUES(@itmId, @itmNm,@fstNm, @date,@prft, @commision)",
sc))
{
cmd.Parameters.AddWithValue("@itmId", workingItem.ItemId);
cmd.Parameters.AddWithValue("@itmNm", workingItem.ItemName);
cmd.Parameters.AddWithValue("@fstNm", logedSalesmen.ID);
cmd.Parameters.AddWithValue("@date",
DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"));
cmd.Parameters.AddWithValue("@prft", workingItem.Profit);
cmd.Parameters.AddWithValue("@commision", workingItem.Commision);
sc.Open();
cmd.ExecuteNonQuery();
}

关于c# - sql语句没有将任何数据保存到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13006989/

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