C#中sqlcommand中的用法ITeye - 娱乐之横扫全球

C#中sqlcommand中的用法ITeye

2019-01-11 11:35:10 | 作者: 运盛 | 标签: 办法,方针,运用 | 浏览: 1873

sqlcommand类表明要对 SQL Server 数据库履行的一个 Transact-SQL 句子或存储进程。

这节课描绘了SqlCommand方针以及怎么运用它与数据库交互。下面是本课的方针:
知道什么是command方针
学习怎么运用ExecuteReader办法查询数据
学习怎么运用ExecuteNonQuery办法刺进和删去方针
学习怎么运用EXecuteScalar办法回来单一值
介绍
SqlCommand对 象答应你指定在数据库上履行的操作的类型。比方,你可以对数据库中的行数据履行select,insert,modify以及delete指令。 SqlCommand方针能被用来支撑断开衔接数据管理的状况,可是在这节课咱们将只独自运用SqlCommand方针。后边关于 SqlDataAdapter的课程将解说怎么运用断开数据完成应用程序。这节课将一起展现怎么从数据库中回来一个独自的值,比方表中记载的数量。创立SqlCommand方针

SqlCommand cmd = new SqlCommand("select CategoryName from Categories", conn);

 上面一行是典型的实例化SqlCommand方针的代码。它运用一个string参数来保存你想要履行的指令以及一个关于SqlConnection方针的引证。SqlCommand具有重载办法,这些办法你将在今后的示例中看到。

查询数据当运用SQL的 select指令,会得到一组数据集。为了和SqlCommand方针合作运用,你应该运用ExecuteReader办法,它回来一个 SqlDataReader方针。咱们将在后边的内容评论SqlDataReader。下面的比方显现了怎么运用SqlCommand方针来得到 SqlDataReader方针:

// 1. Instantiate a new command with a query and connection
SqlCommand cmd = new SqlCommand("select CategoryName from Categories", conn);
// 2. Call Execute reader to get query results
SqlDataReader rdr = cmd.ExecuteReader();
//3.use while to get the data from sqldatareader
while(rdr.read())
 Console.writeline(rdr(0));

 在上面的示例中,咱们经过传递指令字符串核衔接方针到结构函数的办法实体化了SqlCommand方针。然后咱们经过SqlCommand方针cmd调用ExecuteReader办法得到了SqlDataReader方针。

这些代码是表1中ReadData办法的一部分,咱们将在后边会集介绍。刺进数据要对数据库刺进数据,运用SqlCommand方针的ExecuteNonQuery办法。下面的代码显现了怎么向数据库表刺进数据:

string insertString = @"insert into Categories(CategoryName, Description)values (
Miscellaneous, Whatever doesnt fit elsewhere)";
 SqlCommand cmd = new SqlCommand(insertString, conn);
 cmd.ExecuteNonQuery();

 SqlCommand的实例化进程与曾经看到的有一些差异,可是根本共同。在结构函数的第一个字符串参数中是用的是刺进字符串变量而不三字符串字面值。该变量在SqlCommand声明之前被声明晰。
留意在insertString文本中“doesn’’t”的两个单引号(’’)。这是将它转义为恰当的单引号。
别的一个需求留意的是咱们显式指明晰列:CategoryName和Description。列表中有一个主键名为CategoryID。咱们疏忽这列由于SQL Server将主动增加此字段。企图对主键比方CategoryID增加值会发生反常。
为了履行此指令,咱们简略的对SqlCommand实体cmd调用ExecuteNonQuery办法。
这段代码是表1中InsertData办法的一部分,咱们将在后边会集介绍更新数据ExecuteNonQuery办法相同用来更新数据。下面的代码显现了怎么更新数据:

 string updateString = @"update Categories set CategoryName = Other
 where CategoryName = Miscellaneous";
 SqlCommand cmd = new SqlCommand(updateString);
 cmd.Connection = conn;
 cmd.ExecuteNonQuery();

删去数据
你相同可以运用ExecuteNonQuery办法删去数据。下面的比方阐明晰怎么运用EXecuteNonQuery办法删去数据库中的记载。

 string deleteString = @"delete from Categories where CategoryName = Other";
 SqlCommand cmd = new SqlCommand();
 cmd.CommandText = deleteString;
 cmd.Connection = conn;
 cmd.ExecuteNonQuery();

 
这个示例运用了没有参数的SqlCommand结构函数。取而代之的是显式地设置了CommandText和SqlCommand方针的衔接特点。
咱们相同可以运用SqlCommand结构函数在前面的两个重载办法——用来刺进或许更新指令——得到相同的成果。它阐明晰在任何时分既可以改动指令文本又可以改动衔接方针。
ExecuteNonQuery办法调用将指令传递给数据库。
得到单一值
某些时分你想从数据库中只取一个值,它可能是关于数据集的计数、和、平均值或许其他聚合数值。运用ExecuteReader办法并核算代码中的成果并不是做这些工作的有用办法。最好的挑选便是让数据库可以履行而且只回来你所需求的独自的值。下面的示例阐明晰怎么运用ExecuteScalar办法来完成:

SqlCommand cmd = new SqlCommand("select count(*) from Categories", conn);
int count = (int)cmd.ExecuteScalar(); 

 总结
SqlCommand方针答应你擦许并对数据库传送指令。它含有针对不同的指令而特定的办法。ExecuteReader办法回来SqlDataReader方针来实际查询的成果。关于insert,update以及delete这些SQL指令,运用ExecuteNonQuery办法。假如你只需求查询的独自集合值,ExecuteScalar办法是最好的挑选。

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表娱乐之横扫全球立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章