我刚开始学习使用数据库连接的CS程序,现在发觉1个问题。在每个button的Click代码中都需要写上:
SqlConnection con = new SqlConnection("server=服务器IP;database=数据库;uid=数据库帐号;pwd=数据库密码 ");
…………
等语句以后才能写其他执行语句。我虽然不知道该怎么解决,但是知道这样的方式肯定是不科学的。请教高手指点
SqlConnection con = new SqlConnection("server=服务器IP;database=数据库;uid=数据库帐号;pwd=数据库密码 ");
…………
等语句以后才能写其他执行语句。我虽然不知道该怎么解决,但是知道这样的方式肯定是不科学的。请教高手指点
我现在必须写上
SqlConnection con = new SqlConnection("server=.;database=Dyczbt;uid=sa;pwd= ");
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText =以下是SQL代码;
具体执行语句;然后button2是修改密码按钮
还需要重复写上SqlConnection con = new SqlConnection("server=.;database=Dyczbt;uid=sa;pwd= ");
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText =以下是SQL代码;
具体执行语句;
这样显然是不科学的~~~
public class SqlControler
{
public static SqlConnection getSqlConnection()
{
return new SqlConnection("server=.;database=Dyczbt;uid=sa;pwd= ");
}
}
要用的时候
SqlConnection conn=SqlControler.getSqlConnection();
按照这个思想,你可以再拓展以下。
SqlConnection con = new SqlConnection("server=.;database=Dyczbt;uid=sa;pwd= ");
SqlCommand cmd = new SqlCommand();
放在——load 之前当做全局变量,
每次调用open()之前打开连接,用了之后再用close()关掉。可以减少这些代码
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.Sql;
using System.Data.SqlClient;/// <summary>
///比较简单的数据库访问类 希望能对你有所帮助
/// </summary>
public class db_conn
{
SqlConnection conn = new SqlConnection();
public db_conn()
{
conn.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
conn.Open();
}
/// <summary>
/// 从数据库中查询数据
/// </summary>
/// <param name="strconn"></param>
/// <returns></returns>
public System.Data.DataSet getdb(string strconn)
{
DataSet ds = new DataSet();
SqlDataAdapter dap = new SqlDataAdapter(strconn, conn);
dap.Fill(ds);
if (ds.Tables[0].Rows.Count > 0)
{
return ds;
conn.Close();
}
else
{
return null;
conn.Close();
}
}
/// <summary>
/// 操作数据库
/// </summary>
/// <param name="strconn"></param>
/// <returns></returns>
public bool updatedb(string strconn)
{
try
{
SqlCommand cmd = new SqlCommand(strconn, conn);
int i = cmd.ExecuteNonQuery();
if (i != 0)
{
HttpContext.Current.Response.Write("<script language='javascript'>alert('数据库更新成功')</script>");
//this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('数据库更新成功')</script>");
return true;
}
else
{
HttpContext.Current.Response.Write("<script language='javascript'>alert('数据库更新失败')</script>");
//this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('数据库更新失败')</script>");
return false;
}
conn.Close();
}
catch (Exception e)
{
return false;
throw;
HttpContext.Current.Response.Write("<script language='javascript'>alert('数据库更新过程中出现问题')</script>");
conn.Close();
}
}
}
通过数据库操作类操作数据库如 sqlhelper
private static string url="server=.;database=Dyczbt;uid=sa;pwd= ";
public static sqlconnection con = new sqlconnection(url);
string sql="查询命令";
sqlcommand com = new sqlcommand();
con.open();
....
...
...con.close();
//连接字符串
private static string connString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\面向对象--C#练习\考前练习\test2\test2\test2.mdf;Integrated Security=True;User Instance=True";
//创建connecttion对象
public static SqlConnection connection = new SqlConnection(connString );
然后再再用到时调用就行!
或者可以把连接数据库字符串和操作的具体功能块封装在一个帮助类里面,用的时候调用就行了。