• 数据库连接


    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];
    }
    }
    }

  • 相关阅读:
    产品经理的创新思维
    大型互联网网站架构心得之二:并、换和其它(转)
    访问IIS元数据库失败解决方法(转)
    (转)SQL Server 假执行,预执行
    从LiveJournal后台发展看 大型网站系统架构以及性能优化方法(转)
    浏览器并发连接数
    转:Session服务器配置指南与使用经验
    转:安装IIS无法找到zClientm.exe文件的解决办法
    使用开源软件,设计高性能可扩展互动网站
    大型互联网网站架构心得之一:分(转)
  • 原文地址:https://www.cnblogs.com/yichengbo/p/2422551.html
Copyright © 2020-2023  润新知