福田区住房和建设局官方网站,企业网络方案的规划和设计,河南建筑公共信息,互联网保险中介平台------- Windows Phone 7手机开发、.Net培训、期待与您交流#xff01; ------- 1、 ADO.Net基础 程序要和数据库交互要通过ADO.Net进行#xff0c;通过ADO.Net就能在程序中执行SQL了。 直接在项目中内嵌mdf文件的方式使用SQLServer数据库#xff08;基于服务的数据库#… ------- Windows Phone 7手机开发、.Net培训、期待与您交流 ------- 1、 ADO.Net基础 程序要和数据库交互要通过ADO.Net进行通过ADO.Net就能在程序中执行SQL了。 直接在项目中内嵌mdf文件的方式使用SQLServer数据库基于服务的数据库。mdf文件随着项目走用起来方便和在数据库服务器上创建数据没有什么区别运行的时候会自动附加Attach。 双击mdf文件会在“服务器资源管理器”中打开管理方式和在Mangement Studio没有什么本质区别要拷贝mdf文件需要关闭所有指向mdf文件的连接。 正式生产运行时附加到SQLServer上,修改连接字符串即可除此之外没有什么区别它在“数据库”节点上点右键“附加”在数据库节点上找任务下的分离可以得到可以拷来拷去mdf文件。 用的时候要在控制台、WinForm项目中在Main函数最开始的位置加入备注中的代码。ASP.Net不需要。备注中的代码如下 string dataDirAppDomain.CurrentDomain.BaseDirectory; if(dataDir.EndsWith(\bin\Debug\)||dataDir.EndsWith(\bin\Release\)) dataDirSystem.IO.Directory.GetParent(dataDir).Parent.Parent.FullName; AppDomain.CurrentDomain.SetData(DataDirectory,dataDir); 2、连接SQLServer 连接字符串程序通过连接字符串指定要连哪台服务器上的、哪个实例的哪个数据、用什么用户名密码等。 项目内嵌mdf文件形式的连接字符串Data Source.\SQLEXERPRESS;AttachDBFilename|DataDirectory|\Database1.mdf;Integrated SecurityTrue;User InstanceTrue. .\SQLEXERPRESS表示本机上的SQLEXERPRESS实例,如果数据库实例名不是SQLEXERPRESS则需要修改。“Database1.mdf”为mdf的文件名。 ADO.Net中通过sqlConnection类创建到SQLServer的连接sqlConnection代表一个数据库连接ADO.Net中的连接等资源都实现了IDisposable接口可以使用using进行资源管理执行备注中的代码如果成功了就ok。 3、执行简单的Insert语句 sqlCommand表示向服务器提交的一个命令SQL语句等 CommandText属性为要执行的SQL语句ExecuteNonQuery方法执行一个非查询语句Update、Insert、Delete等 using(SqlCommand cmdconn.CreateCommand()) { cmd.CommandTextinsert into T_Users(UserName,Password) values(admin,888888); cmd.ExecuteNonQuery(); } ExecuteNonQuery返回值是执行的影响行数 易错点string usernametest; ....... cmd.CommandTextinsert into T_Users(UserName,Password) values(username,888888); 4、执行查询 执行有多行结果集的用ExeccuteReader SqlDataReader readercmd.ExecuteReader(); ................. while(reader.Read()) { Console.WriteLine(reader.GetString(1)); } reader的GetString、GetInt32等方法只接受整数参数 也就是序号用GetOrdinal方法根据列名动态得到序号。 5、ExecuteScalar sqlCommand的ExecuteScalar方法用于执行查询并返回查询所返回的结果集中在第一行的第一列因为不能确定返回值的类型所以返回值是object类型。 cmd.CommandTextselect count(*) from T_Users; int iConvert.ToInt32(cmd.ExecuteScalar()); cmd.CommandTextselect getdate();DateTime dtConvert.ToDateTime(cmd.ExecuteScalar()); 得到自动增长字段的主键值在values关键词前加上output inserted.id,其中id为主键字段名。执行结果就是插入的主键值用ExecuteScalar执行最方便。 cmd.CommandTextinsert into T_Users(UserName,Password)output inserted.id values(admin,888888); int iConvert.ToInt32(cmd.ExecuteScalar()); 6、SQL注入漏洞攻击 构造恶意的Password:or11 if(reader.Read()) Console.WriteLine(登录成功); else Console.WriteLine(登录失败); 防范注入漏洞攻击的方法不使用SQL语句拼接通过参数赋值 总结后面的练习题基本就是用的是前面的知识点重点掌握前面的知识点。 通过今天的视频学习感觉后面的习题有点小难度要解决它多看多练。 ------- Windows Phone 7手机开发、.Net培训、期待与您交流 -------转载于:https://www.cnblogs.com/junhan/archive/2012/11/22/2782495.html