So, I'm trying to use parameters in SQL, since someone in my database has the last name "O'Brien", as you can imagine, without using parameters, it caused me a lot of hell before you start yelling at me telling me I should have already used parameterized queries, I am very new to using SQL correctly, and I did not have time to learn how to do this correctly, but so far I just used string queries, my code looks like this:
string constr = ConfigurationManager.ConnectionStrings["EBSTEST"].ConnectionString;
DataTable dt = new DataTable();
using (SqlConnection con = new SqlConnection(constr))
{
using(SqlCommand cmd = new SqlCommand())
{
foreach (string name in StringNames)
{
string[] StuName = name.Split('|');
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Select MOBILE_PHONE_NUMBER as Number From people Where FORENAME = @FORENAME and SURNAME = @SURNAME and PERSON_CODE = @PERSONCODE";
cmd.Parameters.AddWithValue("@PERSONCODE", StuName[0]);
cmd.Parameters.AddWithValue("@FORENAME", StuName[1]);
cmd.Parameters.AddWithValue("@SURNAME", StuName[2]);
cmd.CommandType = CommandType.Text;
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataSet ds = new DataSet())
{
DataTable ndt = new DataTable();
sda.Fill(ndt);
dt.Merge(ndt);
}
}
}
}
}
Numbers.AddRange(dt.Rows.OfType<DataRow>().Select(dr => dr.Field<string>("Number")).ToList());
But for some reason this tells me that @PERSONCODE is already declared. I have no idea what is going on. Any help would be appreciated.
source
share