zoukankan      html  css  js  c++  java
  • 用ASP.NET/C#连接Access和SQL Server数据库

    连接Access

    首先看一个例子代码片段:

    程序代码:

     1 using system data;
     2 
     3 using system data.oledb;
     4 
     5 ......
     6 
     7 // 建立指向数据库的连接 
     8 string strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +Application.StartupPath + "\\login.mdb";
     9 OleDbConnection aConnection = new OleDbConnection(strConnect);
    10 
    11 // 设计所需要返回的数据集的内容 
    12  OleDbCommand aCommand = new OleDbCommand("select * from Register where ID = (select max(ID) from Register)", aConnection);
    13 
    14             try
    15             {
    16                 // 打开指向数据库连接 
    17                 aConnection.Open();
    18                 // 返回需要的数据集内容 
    19                 OleDbDataReader aReader = aCommand.ExecuteReader();
    20 
    21                 Console.WriteLine("以下就是打开后的数据集的一个字段的所有内容!");
    22 
    23                  while (aReader.Read())
    24                  {
    25 
    26                          Console.WriteLine(aReader.GetInt32(0));
    27                          Console.WriteLine(aReader.GetString(1));
    28                   }
    29                 aReader.Close();
    30                 // 关闭数据集 
    31                 aConnection.Close();
    32                 // 关闭指向数据库的连接 
    33 
    34 
    35             }
    36             catch (OleDbException ee)
    37             {
    38                 Console.WriteLine("错误类型:", ee.Errors[0].Message);
    39                 // 如果出错,输出错误信息 
    40             }

    解释:

    连接Access数据库需要导入额外的命名空间,所以有了最前面的两条using命令

     strConnect这个变量里存放的是连接数据库所需要的连接字符串,他指定了要使用的数据提供者和要使用的数据源。

    "provider = microsoft.jet.oledb.4.0;"时至数据提供者,这里使用的是microsoft jet引擎,也就是Access中的数据引擎,asp.net就是靠这个和Access数据库连接的。

    "Data Source= Application.StartupPath + "\\login.mdb""是指明数据源的位置,他的标准形式是"data source = mydrive:mypath\myfile.mdb"

    ps:

      1."+="后面的"@"符号是泛防止将后面的字符串中的"\"解析为转义字符。

      2.如果要连接的数据库文件盒当前文件在同一个目录下,还可以使用如下的方法连接:

        strConnect += "data source = ";

        strConnect +=mappath("数据库名.mdb");

        这样就可以省得你写一大堆东西了。

      3.要注意连接字符串中的参数之间要用分号来分隔。

    OleDbConnection aConnection = new OleDbConnection(strConnect);这一句是利用定义好的连接字符串来简历了一个链接对象,以后对数据库的操作我们都要和这个对象打交道。

    aConnection.Open();这用来打开连接。至此,与Access数据库的连接完成。

    拦连接sql Server

    例子代码片段:

    程序代码:

    using system.data;

    using system.data.sqlclient;

    ......

    string strConn = " user id = sa; password = ;";

    strConn += "initial catalog = northwind; server = yoursqlserver;";

    strConn += " connect timeout = 30";

    sqlconnection connection = new sqlconnection(strConn);

    ......

    connection.open();

    connection.close();

    ......

    解释:

    连接sql server数据库的机制与连接access的机制没有什么太大的区别,只是改变了connection对象和连接字符串中的不同参数。

    首先,连接sql server使用的命名空间不是"system.data.oledb"而是"system.data.sqlclient".

    其次,就是他的连接字符串了,我们一个一个参数来介绍(注意参数间用分号分隔):

      "user id = sa":连接数据库的验证用户名为sa,他还有一个别名"uid",所以这句我们还可以写成"uid = sa"。

      "passwrd = ":连接数据库的验证密码为空。他的别名为"pwd",所以这句我们还可以写成"pwd = ".

      注意:

      这里,你的sql server 必须已经设置了需要用户名和密码来登录,否则不能用这样的方式来登录。如果,你的sql server 设置为windows登录,那么在这里就不需要使用"user id"和"password"这样的方式来登录。而需要使用"trusted_connection = sspi"来进行登录。

      "initial catalog = northwind":使用的数据源为"northwind"这个数据库,他的别名为"database",本句可以写成"database = northwind"。

      "server= yoursqlserver":使用名为"yoursqlserver"的服务器,他的别名为"Data Source"、"address"、"addr",如果使用的是本地数据库且定义了实例名,则可以写成"server = (local)\实例名";如果是远程服务器,则将"(local)"替换为远程服务器的名称或ip地址。

      "connect timeout = 30":连接超时时间为30秒。

    在这里,建立连接对象的构造函数为:sqlconnection。

    其余的就和access没有什么区别了!

    sql server 连接数据库例子:

    不用web.config文件的情况下:
      1 static string m_StrConn = " server=" + @".\sqlexpress" + ";database=ASPNET_DB;Integrated Security=True";
      2 
      3 /// <summary>
      4 /// 查询结果集
      5 /// </summary>
      6 /// <param name="sqlText">SQL文</param>
      7 /// <param name="sqlParams">SQL文中需要的参数</param>
      8  /// <returns></returns>
      9 public static SqlDataReader HelperGetDataReader(string sqlText, params SqlParameter[] sqlParams)
     10 {
     11        SqlConnection conn = new SqlConnection(m_StrConn);
     12        SqlCommand cmd = new SqlCommand(sqlText, conn);
     13        conn.Open();
     14         foreach (SqlParameter param in sqlParams)
     15          {
     16                 cmd.Parameters.Add(param);
     17          }
     18          //if (sqlParams != null && sqlParams.Length > 0)  //这两种方法都可以
     19         //{
     20          //    cmd.Parameters.AddRange(sqlParams);
     21           //}
     22         return cmd.ExecuteReader();
     23 }
     24 /// <summary>
     25         /// 执行SQL语句
     26         /// </summary>
     27         /// <param name="sqlText"></param>
     28         /// <param name="sqlParam"></param>
     29         /// <returns></returns>
     30         public static string HelperExecScalar(string sqlText, params SqlParameter[] sqlParam)
     31         {
     32             SqlConnection connection = new SqlConnection(m_StrConn); //指定连接的数据库
     33             SqlCommand cmd = new SqlCommand(sqlText, connection); //创建命令
     34             connection.Open();  //打开数据库
     35             foreach (SqlParameter f in sqlParam)
     36             {
     37                 cmd.Parameters.Add(f);
     38             }
     39             string dr = "";
     40             object obj = cmd.ExecuteScalar();
     41             if(obj != null)
     42              dr = obj.ToString();
     43             return dr;
     44             //SqlDataReader dr = cmd.ExecuteReader();
     45             //if (dr.Read())
     46             //{
     47             //    return true;
     48             //}
     49             //else
     50             //{
     51             //    return false;
     52             //}
     53 
     54         }
     55 /// <summary>
     56         /// 插入|更新|删除 操作
     57         /// </summary>
     58         /// <param name="sqlText"></param>
     59         /// <param name="sqlParameter"></param>
     60         /// <returns>true:插入|更新|删除 成功
     61         /// </returns>false:插入|更新|删除 失败
     62         internal static bool HelperExecNonQuery(string sqlText, params SqlParameter[] sqlParameter)
     63         {
     64             bool isSuccess = false;
     65             int count = 0;
     66             SqlConnection conn = new SqlConnection(m_StrConn);
     67             SqlCommand cmd = new SqlCommand(sqlText, conn);
     68             conn.Open();
     69             foreach (SqlParameter param in sqlParameter)
     70             {
     71                 cmd.Parameters.Add(param);
     72             }            
     73             count = cmd.ExecuteNonQuery();
     74             if (count > 0)
     75             {
     76                 isSuccess = true;
     77             }
     78             else
     79             {
     80                 isSuccess = false;
     81             }
     82             return isSuccess;
     83         }
     84 
     85         public static DataSet HelperGetDataSet(string sqlText, params SqlParameter[] sqlParameter)
     86         {
     87             using (SqlConnection conn = new SqlConnection(m_StrConn))
     88             {
     89                 conn.Open();
     90                 DataSet ds = new DataSet();
     91                 SqlDataAdapter sda = new SqlDataAdapter();
     92                 SqlCommand cmd = new SqlCommand(sqlText, conn);
     93                 foreach (SqlParameter param in sqlParameter)
     94                 {
     95                     cmd.Parameters.Add(param);
     96                 }  
     97                 sda.SelectCommand = cmd;
     98                 sda.Fill(ds);
     99                 return ds;
    100             }
    101         }

    使用web.config的情况:

    web.config (配置文件) 中

    1   <appSettings>
    2     <add key="ConnectionString" value="server=LLLLLL\SQLEXPRESS; trusted_connection=sspi; database=ASPNET_DB"/>
    3   </appSettings>

    C#代码中,调用

    1 static string m_StrConn = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"].ToString();


    还有个例子:

    不用web.config直接在文件中写

    SqlConnection conn = new SqlConnection("server=.\\SQLEXPRESS;uid=sa;pwd=123456;database=login");

    如何是Express版的数据库,一定要在服务器名的后面加上 \\SSQLEXPRESS

    一个完整的例子

       string userName = Request.Form["userName"];
             string userPwd = Request.Form["userPwd"];
             SqlConnection con = new SqlConnection("server=localhost\\SqlExpress;uid=sa;pwd=123456;database=login");
             con.Open();
             SqlCommand cmd=new SqlCommand("select count(*) from login where userName='"+userName+"' and userPwd='"+userPwd+"'",con);
             int count=Convert.ToInt32(cmd.ExecuteScalar());
             if(count>0)
             {
             Response.Redirect("main.aspx");
             }

  • 相关阅读:
    Linux 学习 step by step (1)
    ubuntu server nginx 安装与配置
    ubuntu server samba服务器配置
    iOS app集成支付宝支付流程及后台php订单签名处理
    mac 连接windows 共享内容
    linux 文件查找,which,whereis,locate,find
    ubuntu server vsftpd 虚拟用户及目录
    ubuntu server 安装 mantis bug tracker 中文配置
    ubuntu server vsftpd 匿名用户上传下载及目录设置
    linux 用户管理,用户权限管理,用户组管理
  • 原文地址:https://www.cnblogs.com/gates/p/3129480.html
Copyright © 2011-2022 走看看