2009-08-18 21 views
1

我目前有Visual Studio 2005和SQL Server 2005.我已经安装了一个空的数据库到SQL Server中,但我不知道如何使用VS来连接数据库。如何将.NET与sql数据库连接?

我应该使用什么样的项目(我将在Windows应用程序中使用数据库),以及我将如何将它插入项目并使用它?编辑:我有一个数据库在Microsoft SQL Server Managament工作室,我想用它在一个winForm中,使用C#。不知怎的,我必须连接这两个?

+0

更精确地指定 - 你需要web/WinForm/console/reusable-lib项目吗? 你将使用哪种语言(C#/ VB或报表)? – Dewfy 2009-08-18 07:15:42

+0

编辑:我在Microsoft SQL Server Managament Studio中有一个数据库,并且我想在winForm中使用它,使用c#。不知怎的,我必须连接这两个? – 2009-08-18 07:57:12

+0

是的 - 从服务器资源管理器中,拖动一个表并将数据源添加到您的解决方案。然后,您会发现使用DataXXX属性的表单上的控件将具有可用的DataSource(您的db)和Members/Values(表/字段)。 – penderi 2009-08-18 09:18:25

回答

1

您已经几个选项 - 最简单的(也是最高性能的,理想的,或推荐的企业级应用)是通过在Visual的“服务器资源管理器”工作室。通过View ... Server Explorer ...访问并展开Data Connections节点,然后浏览新创建的数据库。

从这里你可以拖动数据源等到你的Windows应用程序。

然而,理想情况下,您可以直接使用ADO,存储过程或SQL。

3

您可以创建项目类型:

  1. Web应用程序
  2. Windows应用程序
  3. 控制台应用程序
  4. Web服务
  5. 类库

要连接到数据库,请使用下面的代码:

SqlDataReader rdr = null; 
SqlConnection conn = new SqlConnection("Data Source=(local);Initial Catalog=Northwind;Integrated Security=SSPI"); 
conn.Open(); 
SqlCommand cmd = new SqlCommand("select * from Customers", conn); 
rdr = cmd.ExecuteReader(); 
conn.Close(); 
conn.Dispose(); 

我建议你拿起一本关于ADO.NET的好书,并通读它。你也可以在Google上搜索一些文章。

2

试试这个ADO.NET Sample Application

using System; 
using System.Data; 
using System.Data.OleDb; 

class Sample 
{ 
    public static void Main() 
    { 
    OleDbConnection nwindConn = new OleDbConnection("Provider=SQLOLEDB;Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind"); 

    OleDbCommand catCMD = nwindConn.CreateCommand(); 
    catCMD.CommandText = "SELECT CategoryID, CategoryName FROM Categories"; 

    nwindConn.Open(); 

    OleDbDataReader myReader = catCMD.ExecuteReader(); 

    while (myReader.Read()) 
    { 
     Console.WriteLine("\t{0}\t{1}", myReader.GetInt32(0), myReader.GetString(1)); 
    } 

    myReader.Close(); 
    nwindConn.Close(); 
    } 
} 

再见

0

在Visual Studio你有可以打开数据源视图中的数据菜单选项。添加一个数据连接并使用向导来“定位”数据库。创建表的本地“表示”后,将该表从数据源选项卡拖到Windows窗体应用程序。

查看所有自动创建的对象,并尝试创建对象列表以及它们如何交互。你能发现连接字符串或表定义吗?

0

你不妨考虑一下nHibernate或者类似的ORM。与其本身使用ADO.Net相比,ORM层有助于减少容易出错的重复数据访问代码的数量。

学习曲线比跳入ADO更陡峭。网络,但不是很重要,还有很多你需要了解的东西 - 关系,交易和“商业交易”,延迟加载,无论如何你需要考虑 - 所以我会建议被迫考虑它们是没有坏事。

结帐www.nhforge.org为一些很好的入门资源。