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》