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 = 变量名;

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

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhao1955/article/details/80347316
个人分类: ➤ C S学习
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

Ado.Net与数据库交互

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭