ADO执行数据库操作命令对象SqlCommand
使用Connection对象成功创建数据库连接后,接下来就可以使用Command对象对数据源执行查询、添加、删除和修改等各种SQL命令了。
SqlCommand对象用来对SQL Server数据库执行操作命令。
SqlCommand属性
属性 | 说明 |
---|---|
CommandText | 获取或设置要执行的SQL语句或存储过程 |
Connection | 获取或设置Command对象所要连接的Connection对象 |
CommandTimeout | 获取或设置命令等待执行的超时时间,默认值为30秒 |
Parameters | 获得与该命令关联的参数集合 |
CommandType | 获取或设置命令的种类,默认值为Text |
SqlCommand方法
方法 | 说明 |
---|---|
Cancel | 结束执行SQL语句 |
Dispose | 关闭Command对象,并释放所占用的系统资源 |
ExecuteScalar | 用于执行查询语句,并返回单一值或者结果集中的第一条记录的第一个字段的值。该方法适合只有一个结果的查询,例如使用SUM、AVG、Max、Min等函数的SQL语句 |
ExecuteNonQuery | 用于执行SQL语句,并返回SQL语句所影响的行数。该方法一般用于执行insert、delete、update等语句 |
ExecuteReader | 用于执行查询语句,并返回一个DataReader类型的行集合 |
向 测试 表插入数据:
using System; using System.Collections.Generic; using System.Data.SqlClient; // 使用 SqlConnection 要引用这个。 using System.Linq; using System.Text; using System.Threading.Tasks; namespace 控制台ADO { class Program { static void Main(string[] args) { string dataDir = AppDomain.CurrentDomain.BaseDirectory; //将当前路径赋值给 dataDir 变量。 if (dataDir.EndsWith(@"\bin\Debug\") || dataDir.EndsWith(@"\bin\Release")) //判断 dataDir 字符串结尾 是不是依这两个中的任意一个结尾的。 { dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName; //将 dataDir 变量中的路径 向上两级,赋值给 dataDir。 AppDomain.CurrentDomain.SetData("DataDirectory",dataDir); //最后将路径 赋值给 DataDirectory. } using (SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDBFilename=|DataDirectory|\Database1.mdf;integrated Security=True;User Instance=false")) { //将数据库连接信息给conn conn.Open(); //打开数据库 using (SqlCommand cmd = conn.CreateCommand()) //创建一个执行SQL语句。 { cmd.CommandText = "insert into 测试(学号,年级,姓名,年龄) values(N'20180828001',N'一年级',N'王钢蛋',15)"; //插入语句 cmd.ExecuteNonQuery(); //执行插入语句 Console.WriteLine("插入成功!");//提示 } } Console.ReadKey(); } } }
输出结果:
通过用户输入“用户名”和“密码” 插入到数据库 用户 表中。
using System; using System.Collections.Generic; using System.Data.SqlClient; // 使用 SqlConnection 要引用这个。 using System.Linq; using System.Text; using System.Threading.Tasks; namespace 控制台ADO { class Program { static void Main(string[] args) { string dataDir = AppDomain.CurrentDomain.BaseDirectory; //将当前路径赋值给 dataDir 变量。 if (dataDir.EndsWith(@"\bin\Debug\") || dataDir.EndsWith(@"\bin\Release")) //判断 dataDir 字符串结尾 是不是依这两个中的任意一个结尾的。 { dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName; //将 dataDir 变量中的路径 向上两级,赋值给 dataDir。 AppDomain.CurrentDomain.SetData("DataDirectory",dataDir); //最后将路径 赋值给 DataDirectory. } Console.WriteLine("请输入用户名:"); string yhm = Console.ReadLine(); Console.WriteLine("请输入密码:"); string mm = Console.ReadLine(); using (SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDBFilename=|DataDirectory|\Database1.mdf;integrated Security=True;User Instance=false")) {//将数据库连接信息给conn conn.Open();//打开数据库 using (SqlCommand cmd = conn.CreateCommand())//创建一个执行SQL语句。 { cmd.CommandText = "insert into 用户(帐号,密码) values('"+yhm+"','"+mm+"')";//插入语句 cmd.ExecuteNonQuery(); //执行插入语句 Console.WriteLine("插入成功!");//提示 } } Console.ReadKey(); } } }
输出结果: