**
首先常用的Sqlcommand对象方法
**
ExecuteNonQuery()方然用于增删改数据(返回影响数据库的行数)
ExecuteReader()方法用于查询多行多列(返回SqlDataReader)
ExecuteScalar()方法用于查询单行 (返回单行数据,可以是int或者是string,具体返回什么值要看数据库T-SQL查询的语句得出的数据类型)
下面来看一下具体怎么实现返回方法
先来看一下ExecuteNonQuery()方法用于增删改数据
有参有反的方法
/// <summary>
/// 数据库修改的方法
/// </summary>
/// <param name="sql">T-SQL增删改语句</param>
/// <returns>返回影响多少行</returns>
int XIU(string sql)
{
//创建连接字符串
string str = "server=.;database=Library;uid=sa;";
//调用连接字符串的对象;注意里面的参数是连接字符串
SqlConnection con = new SqlConnection(str);
//创建一个接收ExecuteNonQuery返回值的变量i
int i = 0;
try
{
//创建执行对象Sqlcommand
SqlCommand cmd = new SqlCommand(sql, con);
//打开连接
con.Open();
//调用方法并接收返回数据库所受影响的行数
i = cmd.ExecuteNonQuery();
}
catch (Exception)
{
Console.WriteLine("程序错误");
//throw;
}
finally
{
//关闭连接
con.Close();
}
//返回接收影响的行数
return i;
}
接下来第二个ExecuteReader()方法用于查询多行多列
这是我创建的无反无参的方法
其他连接部分一样只是执行部分有所区别
占时还不知道怎样改成有参有反的方法
/// <summary>
/// 查询数据库的方法
/// </summary>
/// <param name="sql">T-SQL查询语句</param>
void CHA()
{
string str = "server=.;database=Library;uid=sa;pwd=sasa";
SqlConnection con = new SqlConnection(str);
//请创建一个SqlDataReader 读取器类型
SqlDataReader select = null;
try
{
string sql = @"SELECT id,name,typeName,number,price
FROM dbo.Book B
INNER JOIN dbo.Booktype K
ON B.typeId=K.typeID";
SqlCommand cmd = new SqlCommand(sql,con);
con.Open();
//用它接收返回的所有数据
select=cmd.ExecuteReader();
if (select.HasRows)
{
Console.WriteLine("书号\t书名\t书类型\t数量\t价格");
//循环接收并打印,记得数据的转换
while (select.Read())
{
int id = Convert.ToInt32(select["id"]);
string name = select["name"].ToString();
string typeName = select["typeName"].ToString();
int number = Convert.ToInt32(select["number"]);
double price = Convert.ToDouble(select["price"]);
Console.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}", id, name, typeName, number, price);
}
}
}
catch (Exception)
{
Console.WriteLine("输入错误");
//throw;
}
finally
{
//使用完后一定需要关闭,读取器的连接
select.Close();
con.Close();
}
}
ExecuteScalar()方法用于查询单行
第三个也是有参有反的方法
这个方法的代码量就少许多
/// <summary>
/// 查询返回单列
/// </summary>
/// <param name="sql">T-SQL查询单行单列语句</param>
/// <returns>返回int类型</returns>
int CHAd(string sql)
{
string str = "server=.;database=Library;uid=sa;pwd=sasa";
SqlConnection con = new SqlConnection(str);
int i = 0;
try
{
SqlCommand cmd = new SqlCommand(sql,con);
con.Open();
i= Convert.ToInt32(cmd.ExecuteScalar());
}
catch (Exception)
{
Console.WriteLine("程序出错");
//throw;
}
finally
{
con.Close();
}
return i;
}