在VS2010中怎样用C#创建数据库连接并执行sql语句 最好举个例子讲一下

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在VS2010中怎样用C#创建数据库连接并执行sql语句 最好举个例子讲一下相关的知识,希望对你有一定的参考价值。

用C#联接SQL有两种连接方式,字符串连接和配置文件连接。一个连接字符串的例子是对数据库文件NORTHWEND.MDF的连接

Data Source=.\\SQLEXPRESS; AttachDbFilename=C:\\...\\NORTHWND.MDF; 

Integrated Security=True; Connect Timeout=30; User Instance=True

数据源的值是.\\SQLEXPRESS,这里“.”可以写成(local)或者localhost,表示是本机数据库。\\SQLEXPRESS表示数据库NORTHWEND.MDF是免费产品。由于数据库是文件形式,添加了AttachDbFilename说明。

另外的例子是对于安装在服务器的数据库,例如本机安装的数据库,使用SqlClient连接字符串。连接到AdventureWorks2008的连接字符串示例如下:

Data Source=.;Initial Catalog=AdventureWorks2008;Integrated Security=True 

对于SQL Server身份验证,使用指定用户名和密码,这里星号表示有效用户名和密码。

"Persist Security Info=False;User ID=*****;Password=*****;"

  +"Initial Catalog=AdventureWorks;Server=mysqlServer"

配置文件是可以按需要更改的XML文件。开发人员可以使用配置文件来更改设置,而不必重编译应用程序。

建议不要在代码中嵌入连接字符串。如果服务器的位置更改,应用程序将需要重新编译。此外,编译成应用程序源代码的未加密连接字符串可以使用MSIL反汇编程序(ildasm.exe)查看而泄密。为了避免将连接字符串存储在代码中,可以将代码存储在ASP.NET应用程序的web.config文件中以及Windows应用程序的app.config文件中。

使用配置文件可以避免记忆连接字符串细节的负担,记忆配置文件的设置过程比记忆连接字符串的细节要容易,因为设置过程按向导进行,智能提示有助于获取连接字符串。下面是VS2010设置配置文件的连接字符串。

具体做法给你推荐一本书:《C#编程指南》,清华大学出版社,2011年1月出版,相关内容有数据库的下载安装、可视化编程、ADO、SQL的FILESTREAM、以及O/R设计器(对象关系设计器)等。在Google或百度输入书名,作者,出版社,有好几家网上书店出售,最低75折,送到家。目前还未在书店上架。

参考技术A 以users表为例,有三个字段,自增长的编号id,int类型;名称name,nvarchar类型,密码pwd,nvarchar类型
首先在vs2005中引入using System.Data.SqlClient;命名空间
/// <summary>
/// 增加
/// </summary>
/// <param name="name">姓名</param>
/// <param name="pwd">密码</param>
/// <returns></returns>
public int Insert(string name,string pwd)

SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=Test;Integrated Security=True");//Initial Catalog后面跟你数据库的名字,如果你的SqlServer服务器名称后面不带SQLEXPRESS,那么Data Source=.
conn.Open();
string sql = "insert into users(name,pwd) values(@name,@pwd)";
SqlCommand cmd = new SqlCommand(sql,conn);
SqlParameter parn = new SqlParameter("@name",name);
cmd.Parameters.Add(parn);
SqlParameter parp = new SqlParameter("@pwd", pwd);
cmd.Parameters.Add(parn);
int result = cmd.ExecuteNonQuery();//result接收受影响行数,也就是说result大于0的话表示添加成功
conn.Close();
cmd.Dispose();
return result;


/// <summary>
/// 删除
/// </summary>
/// <param name="name">姓名</param>
/// <param name="pwd">密码</param>
/// <returns></returns>
public int Update(int id)

SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=Test;Integrated Security=True");//Initial Catalog后面跟你数据库的名字,如果你的SqlServer服务器名称后面不带SQLEXPRESS,那么Data Source=.
conn.Open();
string sql = "delete from users where id=@id";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlParameter parn = new SqlParameter("@id", id);
cmd.Parameters.Add(parn);
int result = cmd.ExecuteNonQuery();//result接收受影响行数,也就是说result大于0的话表示删除成功
conn.Close();
cmd.Dispose();
return result;



/// <summary>
/// 修改
/// </summary>
/// <param name="name">姓名</param>
/// <param name="pwd">密码</param>
/// <returns></returns>
public int Insert(string name, string pwd,int id)

SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=Test;Integrated Security=True");//Initial Catalog后面跟你数据库的名字,如果你的SqlServer服务器名称后面不带SQLEXPRESS,那么Data Source=.
conn.Open();
string sql = "update users set name=@name,pwd=@pwd where id=@id";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlParameter parn = new SqlParameter("@name", name);
cmd.Parameters.Add(parn);
SqlParameter parp = new SqlParameter("@pwd", pwd);
cmd.Parameters.Add(parn);
SqlParameter pari = new SqlParameter("@id", id);
cmd.Parameters.Add(pari);
int result = cmd.ExecuteNonQuery();//result接收受影响行数,也就是说result大于0的话表示修改成功
conn.Close();
cmd.Dispose();
return result;



/// <summary>
/// 查询
/// </summary>
/// <returns></returns>
public DataTable Select()

SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=Test;Integrated Security=True");//Initial Catalog后面跟你数据库的名字,如果你的SqlServer服务器名称后面不带SQLEXPRESS,那么Data Source=.
conn.Open();
string sql = "select * from users";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);
conn.Close();
cmd.Dispose();
return dt;

方法写好后,下面举一个查询的例子,在form窗体中拖一个DataGridView,然后在Load方法中
private void Form1_Load(object sender, EventArgs e)

dataGridView1.DataSource = Select();

这样一运行,DataGridView中就会显示数据了本回答被提问者采纳
参考技术B default.aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.htmlControls;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page


protected void Page_Load(object sender, EventArgs e)

SqlConnection conn = dbconn.crtConn();//调用静态数据库连接类,并实例化
conn.Open();
SqlCommand cmd = new SqlCommand("select name from sort",conn); //建立command 命令 ,并实例化为cmd
try //试着读取数据库,如果没有错误,则执行下面错作

SqlDataReader rs = cmd.ExecuteReader();//从数据源中读取数据,并将数据返回到rs中
while (rs.Read()) //使用rs.read()输出rs中的数据内容

Response.Write(rs.GetString(0)+"<br>"); //数据内容



catch (Exception)//如果执行上面sql语句出错,则输出下面语句内容!

Response.Write("连接错误!");


参考技术C using System.Data.SqlClient;

//调用公共类中的CreateDB方法,建立数据连接
SqlConnection con = DB.createDB();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
//打开数据库连接
con.Open();
cmd.CommandText = "sql语句"
//执行语句 //查询的话要read
cmd.ExecuteNonQuery(); SqlDataReader sdr = cmd.ExecuteReader();
//关闭数据库连接
con.Close();

在vs2012中用c#想从数据库中读取数据并赋值给一个变量该怎么做呢,有三列分别是a,b,c?

什么数据库,不同数据库有不同连接方式。

一般步骤:
① 建立链接 SqlConnection
② 打开链接 SqlConnection.Open
③ 通过适配器 Adapter 填充到 DataSet
④ 获取 DataSet 中 DataTable 里面的记录 DataRow
转化类型然后赋值给变量追问

sql数据库,能给完整的代码吗,谢谢谢谢谢谢

追答

有个库存的示例代码
public void 数据集测试()

//(1.连接)建立到数据库的 连接 conn
SqlConnection conn = new SqlConnection();
conn.ConnectionString = @"Data Source = (LocalDB)\\MSSQLLocalDB; AttachDbFilename = J:\\数据库\\SQLDB\\NewDB.mdf; Integrated Security = True; Connect Timeout = 5";
//(2.打开)
conn.Open();
string 表名 = "Users";
using (conn)

//(3.适配)适配器 dada 和 数据集 ds
dada = new SqlDataAdapter();
ds = new DataSet("DataSet1");
//var dt = new DataTable();
//ds.Tables.Add(dt);
//(4.Select命令)填充命令 cmd
dada.SelectCommand = new SqlCommand(@"select * from " + 表名);
//(5.Fill到数据集)
dada.Fill(ds, 表名);

//(6.释放资源)
conn.Close();
conn.Dispose();
//访问数据集中的表
DataTable myTable = ds.Tables[表名];
foreach (DataRow myRow in myTable.Rows)

foreach (DataColumn myColumn in myTable.Columns)

Console.WriteLine(myRow[myColumn]); //遍历表中的每个单元格


//修改数据
foreach (DataRow row in myTable.Rows)
row["name"] = row["name"] + "备份";
// 将DataSet的修改提交至“数据库”
SqlCommandBuilder mySqlCommandBuilder = new SqlCommandBuilder(dada);
dada.Update(ds, 表名);
//注意:在修改、删除等操作中表必须定义主键,select的字段也必须包含主键,
//否则会抛出异常“对于不返回任何键列信息的 SelectCommand,不支持 UpdateCommand 的动态 SQL 生成。”

参考技术A ado.net
sqlcommand

以上是关于在VS2010中怎样用C#创建数据库连接并执行sql语句 最好举个例子讲一下的主要内容,如果未能解决你的问题,请参考以下文章

用C#通过sql语句操作Sqlserver数据库教程

在VS2010中创建并引用dll(C#)

c#用vs2010设计界面时怎么让设计的窗体最大化

麻烦问一下怎么用vs2010编译运行C#,就像eclipse那样。。。

创建一个对所有对象进行操作的 C# VS2010 Visualizer

VS2010中 生成、生成解决方案、开始执行(不调试),这三个是啥意思,三者之间有啥联系?(C#语言)