您的位置:首页 > 数据库

执行带参数的sql语句

2012-03-06 20:57 232 查看
using System;
using System.Data;
using System.Data.SqlClient;

namespace CommandParameters
{
class CommandParameters
{
static void Main()
{
// set up rudimentary data
string fname = "Zachariah";
string lname = "Zinn";

SqlConnection conn = null;

// define scalar query
string sqlqry = @"
select
count(*)
from
employees ";

// define insert statement
string sqlins = @"
insert into employees
(
firstname,
lastname
)
values(@fname, @lname) ";

// define delete statement
string sqldel = @"
delete from employees
where
firstname = @fname
and
lastname = @lname ";

try
{
//创建连接。
conn = new SqlConnection(@"
server = .;
integrated security = true;
database = northwind ");
// create commands
SqlCommand cmdqry = new SqlCommand(sqlqry, conn);
SqlCommand cmdnon = new SqlCommand(sqlins, conn);

//对于有参数的非查询语句需要先调用SqlCommand.Prepare();
cmdnon.Prepare();
// add parameters to the command for statements
cmdnon.Parameters.Add("@fname", SqlDbType.NVarChar, 10);
cmdnon.Parameters.Add("@lname", SqlDbType.NVarChar, 20);

//打开数据库连接。
conn.Open();

//SqlCommand.ExecuteScalar()返回影响的行数。
Console.WriteLine(
"Before INSERT: Number of employees {0}\n"
, cmdqry.ExecuteScalar() );

// execute nonquery to insert an employee
cmdnon.Parameters["@fname"].Value = fname;
cmdnon.Parameters["@lname"].Value = lname;
Console.WriteLine(
"Executing statement {0}"
, cmdnon.CommandText );

//执行了插入语句。
cmdnon.ExecuteNonQuery();

Console.WriteLine(
"After INSERT: Number of employees {0}\n"
, cmdqry.ExecuteScalar()
);

//把cmdnon对应的sql语句设置为sqldel。
//注意参数未变。
cmdnon.CommandText = sqldel;
Console.WriteLine(
"Executing statement {0}"
, cmdnon.CommandText
);
cmdnon.ExecuteNonQuery(); //执行删除语句。
Console.WriteLine(
"After DELETE: Number of employees {0}\n"
, cmdqry.ExecuteScalar()
);
}
catch (SqlException ex)
{
Console.WriteLine(ex.ToString());
}
finally
{
conn.Close();
Console.WriteLine("Connection Closed.");
}
}
}
}
//所有代码来自书籍《Begining C# Databases From Novice to Professional》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: