ADO.NET与外部数据库连接及查询等基本操作

此博客已迁移到新博客欢迎大家访问关注,谢谢!!!

建立与数据库连接:

**需要连接字符串,用到System.Data.SqlClient类库。
方法:

  • 使用一个类构建SQL Server 连接字符串
    • 创建SqlconnectionStringBuider实例
    • 根据需要设置其属性
    • 访问该对象的ConnectionString属性
  • 与SQL Server数据库建立连接

    • 生成一个指向该数据库的连接字符串
    • 创建SqlConnection实例,向构造函数传递连接字符串
    • 调用Sqlconnection实例的open方法

    代码实例:

           /*建立连接字符串生成器*/
        SqlConnectionStringBuilder connection = new SqlConnectionStringBuilder();
    
         /*能连上本地服务器,以windows身份登录*/
        if (LocalServer.Checked == true)
                  connection.DataSource = "(local)";
    
                 /*以sql身份登录*/
         else
                   connection.DataSource = ServerName.Text;
    
            /*若sql server是express版本*/
         if (IsExpressEdition.Checked == true)
                   connection.DataSource += @"\SQLEXPRESS";
    
            /*基于当前windows登陆的集成安全验证*/
         if(AuthenticateWindows.Checked == true)
         {
              connection.IntegratedSecurity = true;
         }                       
         else
         {
             connection.IntegratedSecurity = false;//基于SQL用户的安全验证
             connection.UserID = UserName.Text;
             connection.Password = UserPassword.Text;
         }
             SqlConnection linkToDB = new SqlConnection(connection.ConnectionString);//新建连接对象
             linkToDB.Open();//打开数据库连接
                 linkToDB.close();//关闭数据库,或用dispose方法,或者用using语句就会自动关闭
    

对数据库进行查询、修改、更新、删除等操作:

**需要用到System.Data.SqlClient类库中的sqlcommand类
方法:

  • 通过一个ADO.NET连接运行SQL查询

    • 创建Sqlcommandr实例
    • 将其CommandText属性设置为SQL语句
    • 将其Connection属性设置为一个有效的Sqlconnection实例
    • 调用这个命令对象的ExecuteNonQuery方法
  • 调用一个返回静态结果的SQL Server存储过程

    • 创建Sqlcommandr实例
    • 将其CommandText属性设置为这个存储过程的名字
    • 将其Connection属性设置为一个有效的Sqlconnection实例
    • 调用这个命令对象的ExecuteScalar方法,捕获返回值

    代码实例:

          /*对于对数据库采取操作但不返回存储数据的服务*/
        string sqlText = @"UPDATE WorkTable SET ProcessedOn = GETDATE() WHERE ProcessedOn IS NULL";
    
       SqlCommand dataAction = new SqlCommand(sqlText, linkToDB);
       dataAction.ExecuteNonQuery();
    
           /*对于返回单个值的查询*/
     string sqlText1 = "select count(*) from WorkTable";
    
     SqlCommand dataAction1 = new SqlCommand(sqlText1, linkToDB);
    
     int total = (int)dataAction1.ExecuteScalar();//返回单个值
    
           /*对于返回数据行的操作*/
           string sqlText2 = "select ID,FullName,ZipCode from Customer";
    
        SqlCommand dataAction2 = new SqlCommand(sqlText2, linkToDB);
    
        SqlDataReader scanCustomer = dataAction2.ExecuteReader();//一次返回一个数据行
    
        if (scanCustomer.HasRows)
            while (scanCustomer.Read());
    
          /*对于访问字段的值,用访问器*/
          result = scanCustomer[0];//从起始位置查找
           result = scanCustomer[“ID”];//按列名称查找
       scanCustomer.NextResult();//若有多个列的返回时
    
          /*查询中存在参数时,用@标识符替代*/
          string test = @"update Employee set Salary = @NewSalary where ID = @EmployeeID";
    
       SqlCommand salaryUpadate = new SqlCommand(test, linkToDB);
    
        paramValue.Value = 50000m;//设置参数的值
    
        salaryUpadate.Parameters.Add(paramValue);//获取参数的值到原来的字符串中
    
         salaryUpadate.Parameters.AddWithValue("@NewSalary", 50000m);//另外一种实例化方式,用于简单的参数时
    
         salaryUpadate.ExecuteNonQuery();
    
       /*对于存储过程的查询时*/
       string test1 = "dbo.AddLocation";//创建存储过程的字符串
    
        SqlCommand locationCommand = new SqlCommand(test1, linkToDB);
    
        locationCommand.CommandType = CommandType.StoredProcedure;//把数据库命令的类型设置成存储过程
    
已标记关键词 清除标记
相关推荐
<p> <b><span style="background-color:#FFE500;">【超实用课程内容】</span></b> </p> <p> <br /> </p> <p> <br /> </p> <p> 本课程内容包含讲解<span>解读Nginx的基础知识,</span><span>解读Nginx的核心知识、带领学员进行</span>高并发环境下的Nginx性能优化实战,让学生能够快速将所学融合到企业应用中。 </p> <p> <br /> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <b><br /> </b> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <b><span style="background-color:#FFE500;">【课程如何观看?】</span></b> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> PC端:<a href="https://edu.csdn.net/course/detail/26277"><span id="__kindeditor_bookmark_start_21__"></span></a><a href="https://edu.csdn.net/course/detail/27216">https://edu.csdn.net/course/detail/27216</a> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> 移动端:CSDN 学院APP(注意不是CSDN APP哦) </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> 本课程为录播课,课程永久有效观看时长,大家可以抓紧时间学习后一起讨论哦~ </p> <p style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <br /> </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <strong><span style="background-color:#FFE500;">【学员专享增值服务】</span></strong> </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <b>源码开放</b> </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化 </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> 下载方式:电脑登录<a href="https://edu.csdn.net/course/detail/26277"></a><a href="https://edu.csdn.net/course/detail/27216">https://edu.csdn.net/course/detail/27216</a>,播放页面右侧点击课件进行资料打包下载 </p> <p> <br /> </p> <p> <br /> </p> <p> <br /> </p>
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页