You should be using parameters to pass values into a SQL statement or else you will be vulnerable to SQL injection attacks. You can create a SqlCommand
object, create SqlParameter
objects, then set values on them. If any of your values are null, then you can pass DBNull.Value
as the parameter value.
SqlCommand cmd = con.CreateCommand();
string cm = "SELECT column1, column2, column3 "
cm += "FROM mytablename "
cm += "WHERE column1=@mSI "
cm += "AND column2=@mSSI OR column1=@mYSI AND column2=@mSI";
cmd.CommandText = cm;
for(int mSSI=0; mSSI<sR.Count(); mSSI++)
{
cmd.Parameters.AddWithValue("@mSI ", sR[mSI]);
// check for a null value
if (sr[mSSI] == null)
{
cmd.Parameters.AddWithValue("@mSSI", DBNull.Value);
}
else
{
cmd.Parameters.AddWithValue("@mSSI", sR[mSSI]);
}
cmd.Parameters.AddWithValue("@mYSI", sR[mYSI]);
SqlDataAdapter sd = new SqlDataAdapter(cmd);
DataTable dat = new DataTable();
sd.Fill(dat);
// clear parameters after each iteration
cmd.Parameters.Clear()
}