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