noname1990
noname1990

Reputation: 1

How to use a sql query result in a variable?

I would like to use my sql query result in a variable at same time.How can i do?

var conn = new SqlConnection(@"Server=(localdb)\MSSQLLocalDB; AttachDbFileName=|DataDirectory|database.mdf;");
conn.Open();
var comm = new SqlCommand($"SELECT name FROM database WHERE age = 25", conn);
var reader = comm.ExecuteReader();
 while(reader.Read())
{
  string name =reader[0].ToString();

}
conn.Close();


if (name != textbox.Text)
{
 //do something
}

Upvotes: 0

Views: 618

Answers (2)

iSR5
iSR5

Reputation: 3498

you could use the DataAdapter instead :

var table = new DataTable(); 

using(SqlConnection con = new SqlConnection(@"Server=(localdb)\MSSQLLocalDB; AttachDbFileName=|DataDirectory|database.mdf;"))
using(SqlCommand command =  new SqlCommand($"SELECT name FROM database WHERE age = 25", con))
using(SqlDataAdapter adapter = new SqlDataAdapter(command))
{
    con.Open();
    adapter.Fill(table);
}


// if single row 
if (table.Rows[0].Field<string>("name") != textbox.Text)
{
 //do something
}

//if multiple rows 
for(int x = 0; x < table.Rows.Count; x++)
{
    if (table.Rows[x].Field<string>("name") !=  textbox.Text)
    {
     //do something
    }
}

Upvotes: 0

Diogo Rocha
Diogo Rocha

Reputation: 10585

Use a DataTable and you can easily access your rows data. Something like:

DataTable dt = new DataTable();
dt.Load(reader)

Then you can use the DataTable.Rows property.

DataRow row = dt.Rows[0];
string name = row["name"].ToString();

Upvotes: 1

Related Questions