admin

在.NET中使用数据库

sql

更新的问题:

好的,因为我真的不知道如何回答您的问题,所以我将简化我的问题。

假设我创建了一个新的Windows窗体应用程序,然后是“项目”->“添加新项”->“本地数据库”。

然后,在数据库资源管理器中,创建一个表(“ testtable”),并为其指定一个“ ID”列和“ VALUE”列。

您能为我提供一些简单的步骤,将代码中的一行添加到数据库中吗?

旧问题:

我一直在尝试做一些我认为确实很容易的事情,但是以前从未使用过C#,并且在细节方面遇到了麻烦。我只是想在Visual C#Express
2008中使用sql数据库。

为了进行测试,我在表单上有一个数据网格,它可以反映对数据库的更改。

如果我使用这个:

codesTableAdapter.Fill(dataSet1.codes);

datagrid(dataset)将填充来自sql数据库的信息。

如果我然后做这样的事情:

codesTableAdapter.InsertQuery(txtCode.Text,txtName.Text);
codesTableAdapter.Fill(dataSet1.codes);
codesTableAdapter.Update(dataSet1);
dataSet1.AcceptChanges();

数据网格反映了更改,但是如果关闭程序并转到数据库,则更改不存在。当我再次打开程序时,更改不存在。

我感觉不太清楚,因为我对这里的了解还很低,所以请让我知道还需要什么其他信息。


阅读 171

收藏
2021-06-07

共1个答案

admin

在没有看到您的代码的情况下,很难理解发生了什么,但是我会做出一些猜测:

假设我创建一个新的Windows窗体应用程序,然后单击“项目”->“添加新项”->“本地数据库”

这将在您的项目中创建一个空的SQL Server Compact Edition .SDF文件。您可以从Visual Studio或SQL
CE查询分析器中编辑此文件。

然后,在数据库资源管理器中,创建一个表(“ testtable”),并为其指定一个“ ID”列和“ VALUE”列。

这将在您的.SDF文件中创建一个空表。这些都是非常糟糕的名字,但是出于测试目的,我们可以使用它们。

您能为我提供一些简单的步骤,将代码中的一行添加到数据库中吗?

System.Data.SqlServerCe提供管理.SDF文件的方法。要将行添加到测试表:

using (SqlCeConnection myConnection = new SqlCeConnection(@"Data Source=Path\To\Your\SDF\file.sdf;"))
using (SqlCeCommand myCmd = myConnection.CreateCommand())
{
    myCmd.CommandType = CommandType.Text;
    myCmd.CommandText = "INSERT INTO testtable (ID, [VALUE]) VALUES (1, whatever)";
    myConnection.Open();
    myCmd.ExecuteNonQuery();
}

请注意,这Path\To\Your\SDF\file.sdf可能不是您的想法;默认情况下,Visual
Studio将项目文件复制到“项目构建输出路径”(例如Path \ to \ your \ project \ bin \ Debug \
file.sdf)。如果更改生成的文件然后重新生成项目,则原始.SDF文件将被复制到您的输出路径,从而清除您对项目文件所做的任何更改。如果这不是您想要的,则必须解释您要完成的工作。

例如,要使更改仅适用于构建的项目文件,请将VS中的数据文件“复制到输出目录”属性更改为“如果更新则复制”。

2021-06-07