参数化SQL(Parameters)使用示例
public partial class Form1 : Form
{
private string connString = "Data Source=.;DataBase=TestDB;UID=sa;PWD=lwm110";
SqlConnection conn;
DataTable dt = new DataTable();
public Form1()
{
InitializeComponent();
dgvStudent.DataSource = null;
dgvStudent.AutoGenerateColumns = false;
LoadData();
dgvStudent.DataSource = dt;
}
private void btnQuery_Click(object sender, EventArgs e)
{
//准备带有参数的SQL语句
string sql = "select SNO,SName,Gender,Birthday,MobileNO,SAddress from student";
sql += " where SNO like @SNO and SName like @SName";
if (comboBox1.Text.Contains("男")) sql += " and Gender='男'";
else if (comboBox1.Text.Contains("女")) sql += " and Gender='女'";
sql += " and MobileNO like @MobileNO";
SqlCommand cmd = new SqlCommand(sql, conn);
//填充参数
cmd.Parameters.AddWithValue("@SNO", "%" + txtSNO.Text.Trim() + "%");
cmd.Parameters.AddWithValue("@SName", "%" + txtSName.Text.Trim() + "%");
cmd.Parameters.AddWithValue("@MobileNO", "%" + txtMobile.Text.Trim() + "%");
try
{
conn.Open();
SqlDataReader objReader = cmd.ExecuteReader();
dt.Clear();
dt.Load(objReader);
conn.Close();
}
catch (Exception ex)
{
throw ex;
}
}
private void LoadData()
{
conn = new SqlConnection(connString);
string sql = "select SNO,SName,Gender,Birthday,MobileNO,SAddress from student";
SqlCommand cmd = new SqlCommand(sql, conn);
try
{
conn.Open();
SqlDataReader objReader = cmd.ExecuteReader();
dt.Load(objReader);
conn.Close();
}
catch (Exception ex)
{
throw ex;
}
}
}
========================参数数组应用示例========================
private void btnQuery_Click(object sender, EventArgs e)
{
//准备带有参数的SQL语句
string sql = "select SNO,SName,Gender,Birthday,MobileNO,SAddress from student";
sql += " where SNO like @SNO and SName like @SName";
if (comboBox1.Text.Contains("男")) sql += " and Gender='男'";
else if (comboBox1.Text.Contains("女")) sql += " and Gender='女'";
sql += " and MobileNO like @MobileNO";
//填充参数
//cmd.Parameters.AddWithValue("@SNO", "%" + txtSNO.Text.Trim() + "%");
//cmd.Parameters.AddWithValue("@SName", "%" + txtSName.Text.Trim() + "%");
//cmd.Parameters.AddWithValue("@MobileNO", "%" + txtMobile.Text.Trim() + "%");
//实例化参数数组
SqlParameter[] par = new SqlParameter[]
{
new SqlParameter("@SNO","%" + txtSNO.Text.Trim() + "%"),
new SqlParameter("@SName","%"+txtSName.Text.Trim()+"%"),
new SqlParameter("@MobileNO","%" + txtMobile.Text.Trim() + "%"),
};
try
{
SqlDataReader objReader = GetReader(sql,par);
dt.Clear();
dt.Load(objReader);
conn.Close();
}
catch (Exception ex)
{
throw ex;
}
}
-------------------------------------------------------------------------------------------
private SqlDataReader GetReader(string sql,SqlParameter[] para)
{
conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand(sql, conn);
try
{
conn.Open();
cmd.Parameters.AddRange(para);
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (Exception ex)
{
throw ex;
}
}
- 点赞
- 收藏
- 分享
- 文章举报
- 使用SqlDataReader读取数据示例
- 使用SqlDataReader读取数据示例
- T-SQL DateTime相关的函数使用示例
- 如何使用Transact-SQL进行事务处理[示例]
- 在SQL中使用CRL函数示例
- 使用sql语句创建和删除约束示例代码
- 使用mybatis执行sql的时候为什么会出现Parameter index out of range (1 > number of parameters, which is 0)?
- AggregateCacheDependency、CacheDependency、SqlCacheDependency Asp.net 2.0和Sql Server的缓存管理和使用ObjectBuilder改造PetShop4 的缓存示例
- SQL中case when的两种使用方法示例
- 使用编号表生成流水号的示例.sql
- Transact-SQL 示例 - UPDATE中使用INNER JOIN
- SQL Profile 总结(四)--使用示例
- 使用sql语句创建和删除约束示例代码
- MyBatis动态SQL之choose和where的使用示例
- 使用binlog2sql做数据恢复的简单示例
- 几个关于正确及错误PL/SQL对照使用的示例
- 2.2.4 CONVERT在日期转换中的使用示例.sql
- Sql语句使用-50个示例
- sqlsa/sqlda使用示例
- 使用临时表进行编号重排的处理示例.sql