1.ADO.NET连接数据库
Connection对象的使用步骤:
1.定义连接字符串
2.创建connection对象 (使用1)
3.打开与数据库的连接
4.关闭数据库连接


Ado.net 提供了对各种不同数据库的统一操作接口。
(1)连接字符串:程序通过连接字符串指定要联哪台服务器上的和哪个实例的哪个数据库,用什么用户名,密码等等。
项目内嵌mdf文件形式的连接字符串"datasource=. \SQLEXPRESS; AttachDBFilename =|DataDirectory|\Database1.mdf;Integrated Security=True;User instance=True"
(2)ADO.NET中通过SqlConnection类创建到SQLServer的连接,SqlConnection代表一个数据库连接,ADO.NET中的连接等资源都实现了IDisposable接口,可以使用using进行资源管理,执行备注中的代码如果成功了就ok

 



(1)连接mdf必须要加的代码。放在main()中
string dataDir=AppDomain.CurrentDomain.BaseDirectory;
if(dataDir.EndsWith(@"\bin\Debug\")||dataDir.EndsWith(@"\bin\Release\"))
{
dataDir=System .IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
AppDomain.CurrentDomain.SetData("DataDirectory",dataDir);
}

(2)第二种方法:
把连接字符串写在config文件中
<configuration>
<connectionStrings>
<add name="test" connectionString="Data Source=KINGSOFT-12557\SQLEXPRESS;AttachDBFilename =|DataDirectory|\test.mdf;Integrated Security=True;User Instance=True" />
</connectionStrings>
</configuration>
登陆 private void btnLogin_Click(object sender, EventArgs e)
{
DataTable dt = SQLHelper.ExecuteDataTable("select * from T_Users where UserName=@UserName",
new SqlParameter("UserName",txtUser.Text));
if (dt.Rows.Count <= 0)
{
MessageBox.Show("没?有瓺这a个?用?户§");
}
else
{
DataRow row=dt.Rows[0];
int errorTimes=Convert.ToInt32(row["ErrorTimes"]);
if (errorTimes >= 3)
{
MessageBox.Show("登?陆?错洙?误ó次?数簓过y多à!?");
return;
}
string dbPassword = Convert.ToString(row["Password"]);
if (dbPassword.Trim() ==this.txtPassword.Text.Trim())
{
MessageBox.Show("登?陆?成é功|");
SQLHelper.ExecuteNonQuery("update T_Users set ErrorTimes=0 where UserName=@UserName",
new SqlParameter("UserName",this.txtUser.Text));
}
else
{
SQLHelper.ExecuteNonQuery("update T_Users set ErrorTimes=ErrorTimes+1 where UserName=@UserName",
new SqlParameter("UserName",this.txtUser.Text));
MessageBox.Show("密ü码?错洙?误ó");
}
}
}
被调用的函数
/// <summary>
///
/// </summary>
/// params想传多少参数就传多少参数
/// 如: ExecuteNonQuery("insert into t values(@f1,@f2)",p1,p2,p3,p4)
/// <param name="sql"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public static int ExecuteNonQuery(string sql,params SqlParameter[] parameters)
{
string connStr = ConfigurationManager.ConnectionStrings["test"].ConnectionString;
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText =sql;
foreach(SqlParameter parameter in parameters )
{
cmd.Parameters.Add(parameter);
}
return cmd.ExecuteNonQuery();
}
}
}
public static DataTable ExecuteDataTable(string sql,params SqlParameter[] parameters)
{
string connstr=ConfigurationManager.ConnectionStrings["test"].ConnectionString;
using (SqlConnection conn = new SqlConnection(connstr))
{
conn.Open();
using(SqlCommand cmd=conn.CreateCommand())
{
cmd.CommandText = sql;
foreach (SqlParameter parmeter in parameters)
{
cmd.Parameters.Add(parmeter);
}
DataSet dataset = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(dataset);
return dataset.Tables[0];
}
}
}

posted on 2012-03-29 01:15  易成波  阅读(469)  评论(0编辑  收藏  举报