Visual Studio C#和SQL Compact的基本入门(连接、选择、插入)

本文关键字:连接 选择 插入 Studio SQL Compact Visual | 更新日期: 2023-09-27 18:28:42

我正在尝试用SQL CE学习C#,以便我的程序能够记住一些东西。

我已经创建了一个数据库,可以连接到它:

SqlCeConnection conn = 
         new SqlCeConnection(@"Data Source=|DataDirectory|'dbJournal.sdf");
conn.Open();

它连接正确,我想是因为如果我把dbJournal.sdf重命名为错误的东西,它就不能正确调试。

假设我想创建一个简单的SELECT查询。

(SELECT * FROM tblJournal)

这是怎么做到的?

一个简单的插件怎么样?

(INSERT TO tblJournal (column1, column2, column2) VALUES 
                                        (value1, value2, value3))

我已经习惯了PHP和MySQL(正如你所看到的:o))

Visual Studio C#和SQL Compact的基本入门(连接、选择、插入)

@Chuck提到EntityFramework,它简化了事情,并为您完成了编写sql的所有工作。

但是这里有一个基本的ADO.NET方法,我将在下面进行描述。

这些类遵循标准模式,因此要从sql server或其他数据库中插入/读取,有精确的复制类,如SqlConnectionOleDbConnectionOleDbCommand

这是最基本的ado.net方法:

using( SqlCeConnection conn =
          new SqlCeConnection(@"Data Source=|DataDirectory|'dbJournal.sdf") )
using( SqlCeCommand cmd = conn.CreateCommand() )
{
  conn.Open();
  //commands represent a query or a stored procedure       
  cmd.CommandText = "SELECT * FROM tblJournal";
  using( SqlCeDataReader rd = cmd.ExecuteReader() )
  {
     //...read
  }
  conn.Close();
}

然后读取数据:

while (rd.Read())
{//loop through the records one by one
     //0 gets the first columns data for this record
     //as an INT
     rd.GetInt32(0);
     //gets the second column as a string
     rd.GetString(1);
}

读取数据的一种好而快速的方法是这样的:

using( SqlCeDataAdapter adap = 
          new SqlCeDataAdapter("SELECT * FROM tblJournal", "your connection") )
{
  //the adapter will open and close the connection for you.
  DataTable dat = new DataTable();
  adap.Fill(dat);
}

这将在一个快照中将整个数据获取到DataTable类中。

插入数据:

SqlCeCommand cmdInsert = conn.CreateCommand();
cmdInsert.CommandText = "INSERT TO tblJournal (column1, column2, column2) 
                           VALUES (value1, value2, value3)";
cmdInsert.ExecuteNonQuery();

如果您刚刚开始学习,我建议您使用LINQ进行查询。

这是MSDN的一篇文章,展示了LINQ的功能。

http://msdn.microsoft.com/en-us/library/bb425822.aspx

使用LINQ可以简单地执行每个查询。例如,您可以像这样编写选择查询

from journal in TblJournal select journal 

或者只是

context.TblJournal

此外,为了提高性能,在使用SQL CE(与其他标准SQL数据库相反)时,您最好始终保持连接打开