Ado.Net与数据库交互

前言:

“Ado.Net”这又是什么技术?其实一点也不复杂,单纯的就是一组在IDE工具(VS)中通过C#编程语言操作数据库的类库,其实也就是一组类库;


    、现在编程中多半都会涉及到数据库的相关知识,所以学会如何在开发工具中熟练的使用数据库也变得尤为重要;那便从最简单的开始,通过连接字符串来实现数据库连接

Windos账户凭据登录Data Source=(local)\\SQLEXPRESS;"Database=DataName;trusted_connection=true;
Sa账户凭据登录server=.;uid=sa;pwd=123456;Initial catalog=DataName

注意:数据来源 data source或者server都可以;数据库名称database或者Initial catalog;

sqlconnection connection=new sqlconneciton(connectionstring);  ----创建数据库连接实例

------------------------------------------------------------------------------------------------------------------

    、当然相对来说这是最简单的连接,但是假如我们编译成程序后,移植到不同电脑相同数据库(MySQL、sqlserver、oracle)但是不同数据库名称(DataName)后,该如何使用,此时难道重新编译生成可执行程序吗?NO!-------这个时候连接字符串配置文件便起了重要的作用。



Console.WriteLine(ConfigurationManager.AppSettings["sqlconn"]); //显示连接数据库字符串
Console.WriteLine(ConfigurationManager.ConnectionStrings["sql2"].ConnectionString); //显示连接数据库字符串

--------------------------------------------------------------------------------------------------------------

    、不过我还是感觉单纯的依靠字符串连接,太过于简单,一点也不高大上,So?SqlConnectionStringBuilder

            //SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();//数据库连接字符串构造器
            //builder.DataSource = "DESKTOP-GCS3QKO\\SQLEXPRESS";
            //builder.InitialCatalog = "myfirstdb";
            //builder.IntegratedSecurity = true;
            //SqlConnection connection = new SqlConnection(builder.ConnectionString)

打开连接Open()
关闭连接Close();关闭后还可以打开
管道关闭Dispose();一般通过执行sqlcommand指令后需要关闭
-------《扩展》------------------------------------------------------------------------------------------------------
在数据库连接字符串的过程中会设计“连接池技术”,其实我感觉和引用类型在堆中存储的过程差不过;


------《关于数据库执行指令操作》---------------------------------------------------------------------------------

创建数据库查询类实例SqlCommand cmd = new SqlCommand(cmdText, connection);参数可以为空
查询类实例与连接    sqlcommand.connetion=sqlconnection ;
查询类实例语句

sqlcommand.sqlcommandtext=" ";

查询类执行    sqlcommand.executenonquery();除了DML中的select语句,都可以使用

-------------------------------------------------------------------------------------------------------------------

    四、那么此时我们的内容到这里就结束了吗?还没有...;不知道各位是否还记得“SQL注入”,这个黑客都比较喜欢的名词;

登录名=任意语句' or 1=1 --    //我们之前操作的SQL执行命令语句几乎都存在这个问题,此时便跳过SQL数据验证,然后登陆系统,下面语句便可以解决这个问题;

            SqlCommand cmd = new SqlCommand();
            cmd.CommandText = "select * from UserInfo where UserName=@UserName and UserPwd=@UserPwd";
            cmd.Parameters.Add("@username", txtUserName.txt);//第二个参数为变量名
            cmd.Parameters.Add("@UserPwd", txtPwd.txt);//第二个参数为变量名

第二个参数为任意类型(适用于所有变量)cmd.Parameters.AddWithValue(string parameters, object value);
通过定义变量类型进行赋值cmd.Parameters.Add("@id", SqlDbType.Int).Value = 变量名;

阅览并且感觉本篇文章还不错的读者,请随手为本篇文章点赞吆,您的支持就是我坚持不懈的动力来源

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 40
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 40
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值