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

作者&投稿:诸梦 (若有异议请与网页底部的电邮联系)
在vs2010中用C#实现对SQL数据库中的表的查询、添加、修改、删除数据,具体代码怎么写?~

我给你写一个例子吧,其他功能依次改改就可以实现的:
///
/// 获取数据库连接
///
///
public static SqlConnection GetConnection()
{
string connStr = @"Data Source=WIN-20120404HSE;Initial Catalog=BooksManage;Integrated Security=True";
return new SqlConnection(connStr);
}
//这是增加一天图书信息(你自己建一张表,然后这张表的字段就是你上面列出来的,然后你根据你的表把我写的这个sql语句换成你的就ok了,你先做,如果不懂的话,在追问。)
public void AddTbook(Tbook tbook)
{

string sql = string.Format("insert into Tbook values('{0}','{1}','{2}','{3}','{4}',@bookCover,'{5}','{6}','{7}','{8}') ",
tbook.BookName, tbook.BookTypeId, tbook.BookAuthor, tbook.BookPrice, tbook.BookContent, tbook.BookCode, tbook.BookInLib,tbook.BookPublishTime,tbook.BookPublisher);
SqlConnection conn = null;
try
{
conn = ConnectionManager.GetConnection();
conn.Open();
//获取SqlCommand,封装sql
SqlCommand command = new SqlCommand(sql, conn);
SqlParameter prm = new SqlParameter("@bookCover", SqlDbType.VarBinary, tbook.BookCover.Length, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, tbook.BookCover);
command.Parameters.Add(prm);
//发送SQL
command.ExecuteNonQuery();
}
catch (SqlException)
{
throw new DAOException();
}
finally
{
if (conn != null)
{
conn.Close();
}
}

}

别着急,很简单,看下面:
private DataTable GetTable() { string connstring = "server=127.0.0.1\\SQLEXPRESS;database=数据库名;uid=用户名;pwd=密码";//连接串,连接你的数据库 SqlConnection conn = new SqlConnection(connstring); string sql = "select * from Users";//查询SQL,根据你的表来写 SqlCommand cmd = new SqlCommand(sql, conn); conn.Open(); DataTable dt = new DataTable(); SqlDataAdapter sda = new SqlDataAdapter(cmd); sda.Fill(dt);//执行查询并加载数据到DataTable中 conn.Close(); cmd.Dispose(); return dt; }然后,dataGridView1.DataSourse=dt;
就可以在窗体中显示数据了。
模糊查询的话,方法和这个一样,只是把SQL改一下,where条件中加上 like 即可。

如果要求代码的完美,需要在数据层写一个单独的获取表的方法,即:
/// /// 将数据库表读取到内存DataTable中 /// /// 传入的sql字符串 /// 内存DataTable表 public static DataTable GetDataTable(string sql) { string connstring = "server=127.0.0.1\\SQLEXPRESS;database=数据库名;uid=用户名;pwd=密码";//连接串,连接你的数据库 SqlConnection conn = new SqlConnection(connstring); SqlCommand cmd = new SqlCommand(sql, conn); conn.Open(); SqlCommand cmd = Cmd(sql); SqlDataAdapter sda = new SqlDataAdapter(cmd); DataTable dt = new DataTable(); sda.Fill(dt); conn.Close(); cmd.Dispose(); return dt; }然后在业务层写一个调用的方法,传入SQL,即:
public static DataTable GetDataTableBLL(){ string sql="select * from table"; DataTable dt = new DataTable(); dt = GetDataTable(sql); return dt;}需要的数据不同,传入的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折,送到家。目前还未在书店上架。



以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中就会显示数据了

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("连接错误!");
}
}
}

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

怎么用VS2010写C语言程序
答:1.打开VS2010主界面,然后选择,文件→新建→项目,在项目类型中选择VC++→win32 然后在右侧模板中选择win32控制台应用程序,再在下面输入一个名称(项目名称,不用带.C)选择保存位置后确定,弹出个对话框,不管它,下一步.2.接下来注意了,这个对话框中,应用程序类型要选择控制台应用程序,附加选项一...

在VS2010中怎样用C#创建数据库连接并执行sql语句 最好举个例子讲一下...
答:用C#联接SQL有两种连接方式,字符串连接和配置文件连接。一个连接字符串的例子是对数据库文件NORTHWEND.MDF的连接 Data Source=.\SQLEXPRESS; AttachDbFilename=C:\...\NORTHWND.MDF;Integrated Security=True; Connect Timeout=30; User Instance=True 数据源的值是.\SQLEXPRESS,这里“.”可以写成(...

如何在VS2010中运行编译C和C++?
答:1、打开VS2010,点击菜单栏上的文件--》新建--》项目,如下图。2、选择Visual C++-->Win32控制台应用程序,填入名称和位置后点击“确定”。3、接下来出现Win32应用程序向导界面,然后点击“下一步”。4、进入应用程序设置,选择“空项目”,然后点击“完成”。如下图所示。5、在源文件夹下点击鼠标...

vs2010怎样编c
答:在打开的New Project对话框中最左侧一栏中选择Visual C++下面的CLR,之后在其右侧的区域中选择CLR Empty Application 并在下面的三个文本框中填入工程名称(Name),工程位置(Location)以及解决方案名称(Solution Name)之后单击OK 然后可以解决方案浏览器中看到刚才新建的工程,右击工程名,选择Properties(属性)...

visual studio 2010怎么运行程序?
答:1、首先打开vs2010,选择"visual c++开发设置",点击"启动Visual Studio"。2、点击新建项目,在弹出窗口选择 Visual C++标签下的空项目,输入名称以及保存位置。3、在左侧的"解决方案资源管理器"中,选择"源文件"右击,选择"添加"->"新建项"。4、在弹出窗口中,选择"C++文件(.cpp)",输入文件名称,...

vs2010如何编写C++问题,随便说一下怎么建一个C++步骤
答:1、第一步,打开VS2010,依次单击“文件”-->“新建”-->“项目”选项,见下图,然后进入下一步。2、其次,完成上述步骤后,选择“Visual C ++”--> “Win32控制台应用程序”选项,填写名称和位置,然后单击“确定”按钮,如下图所示,然后进入下一步。3、接着,完成上述步骤后,出现Win32应用...

怎么用VS2010写C语言程序
答:点击“下一步”继续。在附加选项中选择“空项目”,然后点击“完成”。在软件界面左边的"解决方案资源管理器"中的“源文件”上面右击鼠标一次选择“添加”、“新建项”。在新窗口中选择“C++文件(.cpp)”,在窗口下方的名称中填写好名称。注意:千万不要忘记在填写好的名称后面写上 .c 比如(hello.c...

如何在VS2010中运行编译C和C++?
答:VS2010 需要先新建工程项目,接着在源文件中添加cpp文件,然后再编写代码,最后编译运行就可以,下面是创建执行C++程序的步骤:1、首先新建项目(文件-->新建-->项目)2、提示需要选择项目的类型,找到Visual C++接着选择新建空项目,填入项目名称和选择项目保存的位置之后点击“确定”。3、Visual C++空...

vs2010怎么建一个新的C语言空项目?
答:1、打开VS2010,文件--新建--项目,选择Visual C++里面的Win32控制台应用程序,把下面的名称填上(如New Project),然后点确定。2、进入Win32应用程序向导,点下一步,在应用程序设置里选择“空项目”,完成。3、在左侧的表中找到“源文件”,右键单击,添加--新建项--C++文件,把下面的名称填上,...

如何在VS2010上成功建立,编译一个C文件,不是c++的!?
答:打开VS2010,选择VC++项目(按照以下图示): 然后在“源文件”文件夹中右击鼠标,选择创建cpp文件,就按照你C的语法代码输入就可以了。