更新的问题:
好的,因为我真的不知道如何回答您的问题,所以我将简化我的问题。
假设我创建了一个新的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(); 数据网格反映了更改,但是如果关闭程序并转到数据库,则更改不存在。当我再次打开程序时,更改不存在。 我感觉不太清楚,因为我对这里的了解还很低,所以请让我知道还需要什么其他信息。
我一直在尝试做一些我认为确实很容易的事情,但是以前从未使用过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();
数据网格反映了更改,但是如果关闭程序并转到数据库,则更改不存在。当我再次打开程序时,更改不存在。
我感觉不太清楚,因为我对这里的了解还很低,所以请让我知道还需要什么其他信息。
在没有看到您的代码的情况下,很难理解发生了什么,但是我会做出一些猜测:
假设我创建一个新的Windows窗体应用程序,然后单击“项目”->“添加新项”->“本地数据库”
这将在您的项目中创建一个空的SQL Server Compact Edition .SDF文件。您可以从Visual Studio或SQL CE查询分析器中编辑此文件。
这将在您的.SDF文件中创建一个空表。这些都是非常糟糕的名字,但是出于测试目的,我们可以使用它们。
System.Data.SqlServerCe提供管理.SDF文件的方法。要将行添加到测试表:
System.Data.SqlServerCe
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文件将被复制到您的输出路径,从而清除您对项目文件所做的任何更改。如果这不是您想要的,则必须解释您要完成的工作。
Path\To\Your\SDF\file.sdf
例如,要使更改仅适用于构建的项目文件,请将VS中的数据文件“复制到输出目录”属性更改为“如果更新则复制”。