一、webconfig设置和参数解释

在C#中新建一个网站时,webconfig文件中会有一个默认的数据库连接语句,如下

  1. <connectionStrings>
  2. <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)\v11.0;
    Initial Catalog=aspnet-easyui-test-20141212151928;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-easyui-test-20141212151928.mdf" />
  3. </connectionStrings>

简单记录一下其标签的意思。

(1)name:数据库连接语句。在C#页面代码中使用时,可以知道其相关属性。

(2)providerName:没什么好说的,SQL数据库一般都是System.Data.SqlClient,如果使用的是Oracle数据库,应该是System.Data.OracleClient。

(3)connectionString:照着默认的写就可以了,没什么说法。

(4)Initial Catalog:你的数据库名字

(5)Integrated Security:有True|False|SSPI。True代表集成登陆数据库,将使用当前的Windows帐户凭据进行身份验证。SSPI的作用与True的作用一样的。False则要求你填入数据库登陆的uid和pwd。也就是账户和密码,一般数据库账户名都是sa,密码是在数据库创建时候填写的。

(6)User ID:=uid,大小写不区分。在Integrated Security为False的情况下才需要填写,代表数据库的登陆账户,一般都是sa。

(7)Password:=pwd,大小写不区分。数据库的登陆密码。

(8)AttachDBFilename:可以写成“extended properties”,“initial file name”,指定连接打开的时候动态附加到服务器上的数据库文件的位置,可以不填写。这个属性可以接受数据库的完整路径和相对路径(例如使用|DataDirectory|语法),在运行时这个路径会被应用程序的 App_Data 目录所代替。

下面是我自己写的一个:

  1. <connectionStrings>
  2. <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)\v11.0;
    Initial Catalog=aspnet-easyui-test-20141212151928;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-easyui-test-20141212151928.mdf" />
  3. <add name="TestConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)\v11.0;
    Initial Catalog=TestUser;Integrated Security=false;User ID=sa;Password=123456"/>
  4. </connectionStrings>

二、C#后台连接

1.写一个抽象类sqlHelper来进行数据库处理以及存储过程的处理,然后在DAL中用stringbuilder来组装数据库操作语句。首先需要配置数据库,也就是刚刚在webconfig中配置好的连接语句需要用上了。

  1. public static string connectionString = ConfigurationManager.ConnectionStrings["TestConnection"].ConnectionString;

公用方法就不赘述了,写一个简单的如何执行SQL语句的吧,把注释也给写上了。

  1. /// <summary>
  2. /// 执行SQL语句,返回影响的记录数
  3. /// </summary>
  4. /// <param name="SQLString">SQL语句</param>
  5. /// <returns>影响的记录数</returns>
  6. public static int ExecuteSql(string SQLString)
  7. {
  8. using (SqlConnection connection = new SqlConnection(connectionString))
  9. {
  10. using (SqlCommand cmd = new SqlCommand(SQLString, connection))
  11. {
  12. try
  13. {
  14. connection.Open();
  15. int rows = cmd.ExecuteNonQuery();
  16. return rows;
  17. }
  18. catch (System.Data.SqlClient.SqlException e)
  19. {
  20. connection.Close();
  21. throw e;
  22. }
  23. }
  24. }
  25. }

最后返回的是int类型的数据,影响结果的记录数。PS:对此类代码进行编写的时候,都要带上两个命名空间:System.Data和System.Data.SqlClient,有些时候还要带上System.Text,加上了这些命名空间才能显示系统内部带上的方法。

2.第二步就可以在DAL中进行调用这些方法了。不过DAL中主要封装的是处理数据的SQL语句,例如:

  1. /// <summary>
  2. /// 更新一条数据
  3. /// </summary>
  4. /// <param name="model"></param>
  5. /// <returns></returns>
  6. public bool Update(MODEL.UserInfoModel model)
  7. {
  8. StringBuilder strSql = new StringBuilder();
  9. strSql.Append("update UserDetail set ");
  10. strSql.Append("username=@username,");
  11. strSql.Append("password=@password,");
  12. strSql.Append("sex=@sex,");
  13. strSql.Append("age=@age,");
  14. strSql.Append("political=@political,");
  15. strSql.Append("height=@height,");
  16. strSql.Append("weight=@weight,");
  17. strSql.Append("graduated=@graduated,");
  18. strSql.Append("professional=@professional,");
  19. strSql.Append("graduateddate=@graduateddate,");
  20. strSql.Append("address=@address,");
  21. strSql.Append("phone=@phone,");
  22. strSql.Append("other=@other ");
  23. strSql.Append("where userid=@userid");
  24. SqlParameter[] parameters = {
  25. new SqlParameter("@username",SqlDbType.VarChar,),
  26. new SqlParameter("@password",SqlDbType.VarChar,),
  27. new SqlParameter("@sex",SqlDbType.Int,),
  28. new SqlParameter("@age",SqlDbType.Int,),
  29. new SqlParameter("@political",SqlDbType.Int,),
  30. new SqlParameter("@height",SqlDbType.Int,),
  31. new SqlParameter("@weight",SqlDbType.Int,),
  32. new SqlParameter("@graduated",SqlDbType.VarChar,),
  33. new SqlParameter("@professional",SqlDbType.VarChar,),
  34. new SqlParameter("@graduateddate",SqlDbType.DateTime),
  35. new SqlParameter("@address",SqlDbType.VarChar,),
  36. new SqlParameter("@phone",SqlDbType.VarChar,),
  37. new SqlParameter("@other",SqlDbType.VarChar,),
  38. new SqlParameter("@userid",SqlDbType.Int,)
  39. };
  40. parameters[].Value = model.UserName;
  41. parameters[].Value = model.Password;
  42. parameters[].Value = model.Sex;
  43. parameters[].Value = model.Age;
  44. parameters[].Value = model.Political;
  45. parameters[].Value = model.Height;
  46. parameters[].Value = model.Weight;
  47. parameters[].Value = model.Graduated;
  48. parameters[].Value = model.Professional;
  49. parameters[].Value = model.GraduatedDate;
  50. parameters[].Value = model.Address;
  51. parameters[].Value = model.Phone;
  52. parameters[].Value = model.Other;
  53. parameters[].Value = model.UserId;
  54.  
  55. int rows = SqlHelper.ExecuteSql(strSql.ToString(), parameters);
  56. if (rows > )
  57. return true;
  58. else
  59. return false;
  60.  
  61. }

当然,其中我用model封装了UserDetail数据库里面的所有字段,通过这样一个方法,我就可以自如的在model中调用数据库里的字段了,毕竟model里面字段的值改变的话,数据库里的数据也响应改变。

C#学习日记之数据库连接的更多相关文章

  1. Linux学习日记-使用EF6 Code First(四)

    一.在linux上使用EF 开发环境 VS2013+mono 3.10.0 +EF 6.1.0 先检测一下EF是不是6的 如果不是  请参阅 Linux学习日记-EF6的安装升级(三) 由于我的数据库 ...

  2. Java学习-006-三种数据库连接 MySQL、Oracle、sqlserver

    此文主要讲述在初学 Java 时,常用的三种数据库 MySQL.Oracle.sqlserver 连接的源代码整理.希望能对初学 Java 编程的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激!源 ...

  3. android学习日记05--Activity间的跳转Intent实现

    Activity间的跳转 Android中的Activity就是Android应用与用户的接口,所以了解Activity间的跳转还是必要的.在 Android 中,不同的 Activity 实例可能运 ...

  4. android学习日记03--常用控件Dialog

    常用控件 9.Dialog 我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框 对话框,要创建对话框之前首先要创建Bui ...

  5. android学习日记03--常用控件checkbox/radiobutton

    常用控件3.checkbox 复选框,确定是否勾选,点击一下勾选,点击第二下取消,当有一系列备选项时适合用checkbox控件,方便用户提交数据. 贴上例子Activity的java代码 packag ...

  6. android学习日记03--常用控件button/imagebutton

    常用控件 控件是对数据和方法的封装.控件可以有自己的属性和方法.属性是控件数据的简单访问者.方法则是控件的一些简单而可见的功能.所有控件都是继承View类 介绍android原生提供几种常用的控件bu ...

  7. Zend Framework学习日记(2)--HelloWorld篇(转)

    Zend Framework学习日记(2)--HelloWorld篇 这一篇主要演示如何用zf命令行工具建立一个基于Zend Framework框架的工程,也是我初学Zend Framework的小练 ...

  8. Zend Framework学习日记(1)--环境搭建篇(转)

    Zend Framework学习日记(1)--环境搭建篇 (1)开发工具 Zend Framework框架:http://framework.zend.com/download/latest 包含2个 ...

  9. Python 学习日记(第三周)

    知识回顾 在上一周的学习里,我学习了一些学习Python的基础知识下面先简短的回顾一些: 1Python的版本和和安装 Python的版本主要有2.x和3.x两个版本这两个版本在语法等方面有一定的区别 ...

随机推荐

  1. Python GUI开发环境的搭建

    原文:Python GUI开发环境的搭建 最近对Python的开发又来了兴趣,对于Python的开发一直停留在一个表面层的认识,玩的部分比较大. Python的入手简单,语法让人爱不释手,在网络通信方 ...

  2. HDU 5729 Rigid Frameworks(连通性DP)

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5729 [题目大意] 给出一个n*m的方格框,可以在单位矩形中添加两种对角线的线,使得其变得稳定,问 ...

  3. 《windows程序设计》学习_2.2:初识消息,双键的使用

    /* 双键的使用 */ #include <windows.h> LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); int WINAPI ...

  4. JAVA异常设计原则

    异常是面向对象语言非常重要的一个特性,良好的异常设计对程序的可扩展性.可维护性.健壮性都起到至关重要. JAVA根据用处的不同,定义了两类异常     * Checked Exception: Exc ...

  5. uva-12657 - Boxes in a Line(双向链表)

    12657 - Boxes in a Line You have n boxes in a line on the table numbered 1 . . . n from left to righ ...

  6. Java加密解密与数字证书的操作

    1 keytool命令总结 一.创建数字证书 交互模式 使用默认的密钥库.keystore(文件夹是c: Documents and Settingusername)和算法(DSA) keytool  ...

  7. [poj 3159]Candies[差分约束详解][朴素的考虑法]

    题意 编号为 1..N 的人, 每人有一个数; 需要满足 dj - di <= c 求1号的数与N号的数的最大差值.(略坑: 1 一定要比 N 大的...difference...不是" ...

  8. c/c++处理参数

    直接上代码:涉及函数getopt(),getopt_long() #include <unistd.h> #include <stdlib.h> #include <st ...

  9. PowerDesigner 基础使用

    建表使用基础 1.打开软件,点击create model(如下图一)or 右上角 文件→建立新模型 or 快捷键 Ctrl+N(如下图二) 2.选择要生成脚本的数据库类型(见上图二) 3.建表(图三) ...

  10. 刚开始学HTML自己做的,求大神些多多指教。

    !DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> ...