C# 如何在C语言中访问数据库

C# 如何在C语言中访问数据库,c#,asp.net,sql,C#,Asp.net,Sql,基本上,我想简单解释一下如何用C代码访问SQL数据库。我推测需要一个连接和一个命令,但是发生了什么?我想我要求的是有人去揭开这个过程的神秘面纱。谢谢 为了清楚起见,我在做网络应用,电子商务之类的事情。这些都是ASP.NET、C和SQL数据库 我将继续并关闭此线程。这有点笼统,我将发布一些关于这个主题的更有针对性和教程式的问题和答案。要查看的主题: ADO.NET基础知识 解决并发冲突 托管数据库提供程序 MSDN在这里有一个非常好的书写: 对于简单的select语句,您应该查看数据读取器。页面中

基本上,我想简单解释一下如何用C代码访问SQL数据库。我推测需要一个连接和一个命令,但是发生了什么?我想我要求的是有人去揭开这个过程的神秘面纱。谢谢

为了清楚起见,我在做网络应用,电子商务之类的事情。这些都是ASP.NET、C和SQL数据库

我将继续并关闭此线程。这有点笼统,我将发布一些关于这个主题的更有针对性和教程式的问题和答案。

要查看的主题:

ADO.NET基础知识 解决并发冲突 托管数据库提供程序
MSDN在这里有一个非常好的书写:

对于简单的select语句,您应该查看数据读取器。页面中的示例:

它基本上首先创建一个对象,然后创建一个-对象,该对象保存您要执行的实际选择,以及对我们刚刚创建的连接的引用。然后它打开连接,在下一行执行语句并返回一个对象

在while循环中,它然后输出读取器中第一行的值。每次调用reader.Read时,读取器将包含一个新行

然后关闭读卡器,因为我们正在退出using secret,所以连接也被关闭

编辑:如果您正在寻找有关在ASP.NET中选择/更新数据的信息,4GuysFromRolla有一个非常好的


EDIT2:正如其他人指出的,如果您使用的是较新版本的.NET,我建议您研究LINQ。您可以在上找到简介、示例和writeup。

如果它是一个web应用程序,这里有一些很好的资源,可以帮助您开始使用.NET中的数据访问:


读起来像是初学者的问题。这需要初学者视频演示


它们以ASP.NET为重点,但要注意数据库方面。

要在SQL server db上连接/执行操作,请执行以下操作:

using System.Data;
using System.Data.SqlClient;

string connString = "Data Source=...";
SqlConnection conn = new SqlConnection(connString); // you can also use ConnectionStringBuilder
connection.Open();

string sql = "..."; // your SQL query
SqlCommand command = new SqlCommand(sql, conn);

// if you're interested in reading from a database use one of the following methods

// method 1
SqlDataReader reader = command.ExecuteReader();

while (reader.Read()) {
    object someValue = reader.GetValue(0); // GetValue takes one parameter -- the column index
}

// make sure you close the reader when you're done
reader.Close();

// method 2
DataTable table;
SqlDataAdapter adapter = new SqlDataAdapter(command);
adapter.Fill(table);

// then work with the table as you would normally

// when you're done
connection.Close();

大多数其他数据库服务器,如MySQL和PostgreSQL,在连接和操作方面都有类似的接口。

如果您想要的是一个简单易懂的教程,那么您应该访问www.ASP.net网站

以下是starter视频页面的链接:

以下是您想要下载的视频:

下面是视频中C项目的链接:


祝你好运

我还建议使用数据集。它们非常易于使用,只需点击几下鼠标,无需编写任何代码,对于小型应用程序来说已经足够好了。

如果你有Visual Studio 2008,我建议跳过ADO.NET,直接跳转到LINQ到SQL

旧的ADO.NET sqlConnection等是LINQ出现后的恐龙。LINQ需要.NET3.5,但向后兼容所有.NET2.0+和VisualStudio2005等

从linq开始是非常容易的

向项目中添加一个新项,一个linq to sql文件,该文件将放置在您的App_代码文件夹中。对于本例,我们将其称为example.dbml 从服务器资源管理器中,将一个表从数据库拖到dbml中。在本例中,该表将命名为items 保存dbml文件 您现在已经构建了几个类。构建了exampleDataContext类,它是linq初始值设定项,构建了item类,它是items表中对象的类。这一切都是自动完成的,您无需担心。现在,假设我想获取itemID为3的记录,我只需要做以下操作:

exampleDataContext db = new exampleDataContext(); // initializes your linq-to-sql
item item_I_want = (from i in db.items where i.itemID == 3 select i).First(); // using the 'item' class your dbml made
这就是一切。现在您有了一个名为item\u I\u want的新项目。。。现在,如果您想从项目中获得一些信息,可以这样称呼它:

int intID = item_I_want.itemID;
string itemName = item_I_want.name;
Linq使用非常简单!这只是冰山一角


当您有一个更强大、更简单的工具可供使用时,无需学习过时的ADO:

@J D OConal基本上是正确的,但您需要确保您处理了连接:

string connString = "Data Source=...";
string sql = "..."; // your SQL query

//this using block
using( SqlConnection conn = new SqlConnection(connString) )
using( SqlCommand command = new SqlCommand(sql, conn) )
{
    connection.Open();

    // if you're interested in reading from a database use one of the following methods

    // method 1
    SqlDataReader reader = command.ExecuteReader();

    while (reader.Read()) {
        object someValue = reader.GetValue(0); // GetValue takes one parameter -- the column index
    }

    // make sure you close the reader when you're done
    reader.Close();

    // method 2
    DataTable table;
    SqlDataAdapter adapter = new SqlDataAdapter(command);
    adapter.Fill(table);

    // then work with the table as you would normally

    // when you're done
    connection.Close();
}

如果命令和连接的作用域是当前的方法,那么最好在命令和连接周围使用using语句。我同意,但MSDN在我复制并粘贴的初学者文章中似乎没有这样做,所以我认为这样做很好。我可以看到不符合最佳实践的示例逻辑,以免混淆。但是IMHO处理数据库连接是非常基本的,尤其是在web应用程序中——OP讨论的是ASP.NET,所以它应该始终包含在内。继续,更新你的例子:在Linq不在的时候学习这个老方法似乎毫无意义。既然有了一种更快、更简单、更强大的方法,为什么还要学习一种古老的技术呢?这是一个初学者的问题,因此标签。谢谢你的链接!我喜欢那些动人的漂亮照片!
string connString = "Data Source=...";
string sql = "..."; // your SQL query

//this using block
using( SqlConnection conn = new SqlConnection(connString) )
using( SqlCommand command = new SqlCommand(sql, conn) )
{
    connection.Open();

    // if you're interested in reading from a database use one of the following methods

    // method 1
    SqlDataReader reader = command.ExecuteReader();

    while (reader.Read()) {
        object someValue = reader.GetValue(0); // GetValue takes one parameter -- the column index
    }

    // make sure you close the reader when you're done
    reader.Close();

    // method 2
    DataTable table;
    SqlDataAdapter adapter = new SqlDataAdapter(command);
    adapter.Fill(table);

    // then work with the table as you would normally

    // when you're done
    connection.Close();
}