c# - 从 Visual Studio C# 和 SQL Compact(连接、选择、插入)开始?

标签 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))

最佳答案

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

关于c# - 从 Visual Studio C# 和 SQL Compact(连接、选择、插入)开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9818169/

相关文章:

c# - 如何以编程方式即时更改网站默认文档

c# - 必须在全局程序集缓存 (GAC) 中安装 Clickonce 部署程序集

c# - 在 Visual Studio 2010 中更改网页后,Designer.cs 损坏

Windows 批处理 - 删除隐藏文件

C# SQL Server 精简版 : Very High Compression Ratio

c# - 异步委托(delegate)与线程

visual-studio - 在 VS2010 中抑制编译器警告

c# - SQL Server Compact 3.5 版数据库访问被拒绝

c# - 我可以让 2 个不同的 Entity Framework 上下文共享一个 Sql Server Compact 数据库吗?

c# - .NET Core 依赖注入(inject),解析泛型接口(interface)