1.使用命令参数:
//安全系数高 不管事添加和删除凡是双引号劈开的都可以换成@..
cmd.CommandText = ".....@uid ....";
cmd.Parameters.Clear();每次使用时记得清屏
cmd.Parameters.AddWithValue("@uid","值")
cmd.ExecuteXXXXX();
Executescalar--标量的意思
count(*)--返回几行几列(统计函数:avg sum count ...)
Parameters--是参数的意思
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data; using System.Data.SqlClient; namespace ConsoleApplication21 { class Program { static const string CONNCTIONGSTRING = "server=.,database=mydb,uid=sa,pwd=123"; static void Main(string[] args) { Console.WriteLine("请输入用户名:"); string uid = Console.ReadLine(); Console.WriteLine("请输入密码:"); string pwd = Console.ReadLine(); bool isok = false; SqlConnection conn = new SqlConnection(CONNCTIONGSTRING); try { conn.Open(); SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = "select * from login where username=@u,pasword=@p"; cmd.Parameters.AddWithValue("@u",uid); cmd.Parameters.AddWithValue("@p",pwd); SqlDataReader dr = cmd.ExecuteReader(); isok = dr.HasRows; } finally { conn.Close(); } Console.WriteLine(isok?"成功":"失败"); } } }
2.ExecuteScalar()执行SQL语句,返回首行首列中的值。
它一般用来执行聚合函数的查询。
Transact-SQL 编程语言提供下列聚合函数: 例:select prd_no,avg(qty) from sales group by prd_no 2. COUNT 返回指定组中项目的数量。 例:select count(prd_no) from sales 3. MAX 返回指定数据的最大值。 例:select prd_no,max(qty) from sales group by prd_no 4. MIN 返回指定数据的最小值。 例:select prd_no,min(qty) from sales group by prd_no 5. SUM 返回指定数据的和,只能用于数字列
3.事务Transaction
ACID - A原子性。C一致性。I-隔离性。D持久性。
两类事务:
(一)链接内事务:在链接打开后,使用事务控制多条语句的执行。
1.创建事务对象。
SqlTransanction trans = conn.BeginTransaction(); //注意必须是链接打开后编写
2.把事务对象挂到命令对象上,让命令执行带有事务的功能。
cmd.Transaction = trans;
3.按照之前所讲得执行命令操作数据库
a.成功后调用事务对象的Commit()方法来提交执行的结果。////成功就提交
b.失败后调用事务对象的Rollback()方法来回滚执行前的状态。//失败就回滚