您的位置:首页 > 数据库

ADO.net连接数据库

2013-05-20 19:58 225 查看
ADO.net是用来向数据库提交SQL语句的类库。

连接数据库的方式:

1.导入System.Data 和System.Data.SqlClient 命名空间

2.使用using能更好的的进行资源释放

using (SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=你要连接的数据库名;User ID=你的用户名;Password=你的密码"))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "SQL语句 ";
cmd.ExecuteNonQuery();
}
}


3.执行查询: 查询优化,防止SQL注入漏洞

using (SqlConnection conn = new SqlConnection(
"Data Source=.;Initial Catalog=ZhangCheng_Demo;User ID=zhangcheng;Password=zhangcheng"
))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select UserAge from dbo.T_UserInfo where UserName = @UserName";  //防止Sql注入
//增删改查的参数都可进行此设置
//@参数不能用于替换表明、select之类的关键字。 例如:select UserAge from @dbo.T_UserInfo where UserName = @UserName";
cmd.Parameters.Add(new SqlParameter("@UserName",txtName.Text));
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read()) //Read 顺序读取,若为空则返回False
{
string  age = reader.GetString(0);
MessageBox.Show(age.ToString());
}
}
}


4.使用DataSet结果集 使用查询结果比较小的时候。查询结果数据量大的话用Reader

using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select * from dbo.T_UserInfo where UserName = @UserName";  //防止Sql注入
//增删改查的参数都可进行此设置
//@参数不能用于替换表明、select之类的关键字。 例如:select UserAge from @dbo.T_UserInfo where UserName = @UserName";
cmd.Parameters.Add(new SqlParameter("@UserName",txtName.Text));
//using (SqlDataReader reader = cmd.ExecuteReader())
//{
//    while (reader.Read()) //Read 顺序读取,若为空则返回False
//    {
//        string  age = reader.GetString(0);
//        MessageBox.Show(age.ToString());
//    }
//}
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet dataSet = new DataSet();
adapter.Fill(dataSet);

DataTable table=dataSet.Tables[0];
DataRowCollection rows = table.Rows;
for (int i = 0; i < rows.Count;i++ )
{
DataRow row=rows[i];
string age=(string)row["UserAge"];
string name=(string)row["UserName"];
MessageBox.Show(age+","+name);
}
}


5.APP.config

将连接数据库字符串放到配置文件中,方便连接时使用。。

6.SqlHelper

将常用的方法放到SqlHelper中,方便使用时调用。例如:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data.SqlClient;

namespace WpfApplication_2
{
class SqlHelper
{
private static string connStr=ConfigurationManager.ConnectionStrings["dbConnectStr"].ConnectionString;

public static int ExcuteNonQuery(string sql)
{
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
return cmd.ExecuteNonQuery();
}
}
}

public static object ExecuteScalar(string sql)
{
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
return cmd.ExecuteScalar();
}
}
}

}
}


把不变的放到方法里,把变化的放到参数里。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: