gpt4 book ai didi

c# - 为什么该行没有被插入到数据库中? C#

转载 作者:行者123 更新时间:2023-11-30 12:43:32 25 4
gpt4 key购买 nike

最后更新

我想我找到了为什么会这样。每次我尝试调试我的应用程序时,Visual Studio 都会在调试文件夹中创建一个新的数据库文件。当我的应用程序关闭时,此文件会被删除,因此我在运行时所做的每项更改都会被删除。我不知道如何更改它,但我会在弄清楚后发布它。

**

编辑以添加更多信息

**

我在 C# 中创建了一个类来处理数据库操作。我有一种方法可以从工作正常的数据库中读取数据。但是当我尝试插入行时,没有任何反应。没有错误或异常,代码按预期运行,到达“return true”语句,但是当我之后检查数据库时,我没有得到任何新数据。数据库现在是空的,所以它与任何唯一字段没有任何冲突。 id 字段不是自动生成的,所以这也不是问题。

代码如下:

public bool saveCity(City c)
{
string query = "INSERT INTO [dbo].[cities] ([Id], [Name], [Latitude], [Longitude], [Radius], [LastUpdate])" +
" VALUES (@Id, @Name, @Latitude, @Longitude, @Radius, @LastUpdate);";
try
{
using (SqlConnection conn = new SqlConnection(connString))
{
using (SqlCommand cmd = new SqlCommand(query, conn))
{
conn.Open();
cmd.Parameters.AddWithValue("@Id", c.Id);
cmd.Parameters.AddWithValue("@Name", c.Name);
cmd.Parameters.AddWithValue("@Latitude", c.Latitude);
cmd.Parameters.AddWithValue("@Longitude", c.Longitude);
cmd.Parameters.AddWithValue("@Radius", c.Radius);
cmd.Parameters.AddWithValue("@LastUpdate", c.Update);
if (cmd.ExecuteNonQuery() > 0)
{
return true;
}
else
{
return false;
}
}
}
}
catch (Exception)
{
return false;
}
}

connString 被定义为类字段:

connString = Properties.Settings.Default.DBConnectionString;

我的数据库中没有任何触发器,或者没有任何东西可以在插入后删除我的行。目前,它只有一张表 cities,如下所示:

DB screen capture

City类的代码:

class City
{
public int Id;
public string Name;
public int Radius;
public double Latitude;
public double Longitude;
public DateTime Update;

public City()
{
Id = -1;
Name = "";
Radius = 0;
Latitude = 0;
Longitude = 0;
Update = DateTime.Now;
}


}

这是我第一次使用 C# 数据库连接,所以我可能缺少一些非常明显和愚蠢的东西,但这让我发疯。

最佳答案

最后,我找到了解决方案。每次尝试调试时,Visual Studio 都会创建一个新的数据库实例。有人针对此问题发布了解决方法,所以这里是链接:

Can I commit changes to actual database while debugging C# in Visual Studio?

关于c# - 为什么该行没有被插入到数据库中? C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31132996/

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