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();
}
}
}输出结果:
