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

时间:2012-03-22 07:39:15

标签: c# visual-studio-2010 sql-server-ce

我正在尝试使用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))

3 个答案:

答案 0 :(得分:3)

@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();

答案 1 :(得分:1)

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

以下是MSDN文章,其中显示了LINQ的功能。

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

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

from journal in TblJournal select journal 

或只是

context.TblJournal

答案 2 :(得分:1)

同样为了提高性能,最好在使用SQL CE时保持连接打开(而不是其他标准sql数据库)