SqlCommand类
  CommandText   获取或设置要对数据源执⾏的 Transact-SQL 语句、表名或存储过程。
  CommandTimeout 获取或设置在终⽌执⾏命令的尝试并⽣成错误之前的等待时间。
  CommandType   获取或设置⼀个值,该值指⽰释 CommandText 是SQL语句,存储过程还是表操作。  Connection     获取或设置 SqlCommand 的此实例使⽤的 SqlConnection。
  Parameters        获取 SqlParameterCollection。
  Transaction    获取或设置将在其中执⾏ SqlCommand 的 SqlTransaction。
static void Main(string[] args)
{
string str = "server=.;database=JunTest;uid=sa;pwd=123";
SqlConnection conn = new SqlConnection(str);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "Update Person Set Name = 'Ado修改' WHERE Id = @Id";    //设置操作语句
//看看默认的发⽣错误等待时间(秒)
Console.WriteLine(cmd.CommandTimeout);  //30
//指明CommandText是SQL语句,存储过程还是表操作。枚举类型,转到定义可看
Console.WriteLine(cmd.CommandType);  //输出 Text 表⽰这是⼀条SQL语句
//SqlCommand的SqlConnection实例对象
Console.WriteLine(cmd.Connection.ConnectionString);    //"server=.;database=JunTest;uid=sa;pwd=123";
//设置参数值
cmd.Parameters.Add("@Id", SqlDbType.Int);
cmd.Parameters["@Id"].Value = 1;
Console.WriteLine(cmd.Parameters["@Id"].Value);    //输出1
conn.Open();
conn.Close();
Console.ReadKey();
}
  1、ExecuteNonQuery()  增删改操作
  增、删、改都是这个:
static void Main(string[] args)
{
string str = "server=.;database=JunTest;uid=sa;pwd=123;";
SqlConnection conn = new SqlConnection(str);        //创建连接
SqlCommand cmd = conn.CreateCommand();              //创建命令
cmd.CommandText = "Update Person Set PersonName = 'Ado修改' WHERE PersonId = @Id";    //设置操作语句
cmd.Parameters.Add("@Id", SqlDbType.Int);          //添加参数,说明类型
cmd.Parameters["@Id"].Value = 1;                    //设置参数值
conn.Open();                                        //打开连接
int i = cmd.ExecuteNonQuery();                      //执⾏命令,ExecuteNonQuery由名称看出,只能⽤于⾮查询语句
conn.Close();                                      //关闭连接
Console.WriteLine(i);                              //输出影响⾏数
Console.ReadKey();
}
  2、ExecuteScalar()   返回第⼀⾏第⼀列
  3、ExecuteReader()  创建⼀个SqlDataReader⽤于读取数据
static void Main(string[] args)
sqltransaction什么意思{
string str = "server=.;database=JunTest;uid=sa;pwd=123;";
SqlConnection conn = new SqlConnection(str);        //创建连接
SqlCommand cmd = conn.CreateCommand();              //创建命令
cmd.CommandText = "SELECT * FROM Person";          //设置操作语句
conn.Open();                                        //打开连接
//SqlDataReader读取数据
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine(reader[0] + ":" + reader[1]);    //输出当前⾏的第⼀列,第⼆列数据
}
}
cmd.CommandText = "SELECT Count(*) FROM Person";
object obj = cmd.ExecuteScalar();                  //仅查询第⼀⾏第⼀列
Console.WriteLine((int)obj);
conn.Close();                                      //关闭连接
Console.ReadKey();
}
  4、ExecuteXmlReader()  返回System.XmlReader实例,⽤于读取SQLServer中的XML字段的值  ⾸先建⼀张表如下:
  其中ArticleInfo字段的数据类型为xml,值为:
<Article>
<author age="30">张三</author>
<length>12000</length>
<price>42</price>
</Article>
  下⾯,我们使⽤ExecuteXmlReader()读取出author的值:
static void Main(string[] args)
{
string str = "server=.;database=JunTest;uid=sa;pwd=123;";
SqlConnection conn = new SqlConnection(str);        //创建连接
SqlCommand cmd = conn.CreateCommand();              //创建命令
cmd.CommandText = "SELECT * FROM Person";          //设置操作语句
conn.Open();                                        //打开连接
cmd.CommandText = "SELECT Top 1 ArticleInfo FROM Article";  //查询XML字段
using (XmlReader reader = cmd.ExecuteXmlReader())          //由Command实例返回XmlReader的实例
{
while (reader.Read())
{
if (reader.Name == "author")
{
Console.WriteLine(reader.ReadInnerXml());      //输出张三
}
}
}
conn.Close();
Console.ReadKey();
}
  还有就是以上这些⽅法的异步版本,本处仅以以下两个⽅法⽰例:
  5、BeginExecuteNonQuery() 异步版ExecuteNonQuery()
  6、EndExecuteNonQuery()  异步版ExecuteNonQuery()
class Program
{
static void Main(string[] args)
{
string str = "server=.;database=JunTest;uid=sa;pwd=123;Asynchronous Processing=true";
SqlConnection conn = new SqlConnection(str);            //创建连接
SqlCommand cmd = conn.CreateCommand();                  //创建命令
cmd.CommandText = "INSERT INTO Person VALUES(11,'郭嘉')";    //设置操作语句
conn.Open();                                            //打开连接
cmd.BeginExecuteNonQuery(BeginCallback, cmd);          //异步执⾏语句
Console.WriteLine("不管你执没执⾏完,我继续做我的事!");
Console.ReadKey();
}
public static void BeginCallback(IAsyncResult result)
{
Console.WriteLine("正在执⾏SQL命令!");
SqlCommand cmd = result.AsyncState as SqlCommand;  //获得异步传⼊的参数
Console.WriteLine("成功执⾏命令:" + cmd.CommandText);
Console.WriteLine("本次执⾏影响⾏数为:"  + cmd.EndExecuteNonQuery(result));
Console.WriteLine("关闭连接!");
cmd.Connection.Close();    //正式关闭连接
}
}
  输出结果如下:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。