I am trying to do run an SQL statement in C#
Here is the code:
static void Main(string[] args)
{
SqlConnection conn = new SqlConnection(
@"Data Source=loninasd023.xx.xx.com;Initial
Catalog=DB.Manager.Data;Integrated Security=SSPI;");
if (impersonateValidUser("svc_mgr", "USERNAME", "PASSWORD"))
{
conn.Open();
SqlCommand cmd = new SqlCommand(
"SELECT [data_check_info] FROM [DB.Manager.Data].[dbo].[server_package_status]",
conn);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(reader);
}
reader.Close();
conn.Close();
}
else
{
Console.WriteLine("The impersonation failed.");
Environment.Exit(100);
}
}
The program prints this:
System.Data.SqlClient.SqlDataReader
System.Data.SqlClient.SqlDataReader
System.Data.SqlClient.SqlDataReader
System.Data.SqlClient.SqlDataReader
System.Data.SqlClient.SqlDataReader
System.Data.SqlClient.SqlDataReader
System.Data.SqlClient.SqlDataReader
System.Data.SqlClient.SqlDataReader
System.Data.SqlClient.SqlDataReader
System.Data.SqlClient.SqlDataReader
System.Data.SqlClient.SqlDataReader
System.Data.SqlClient.SqlDataReader
System.Data.SqlClient.SqlDataReader
What am I doing wrong?
SqlDataReader.ToString()
method returns it's full-typed name of type. That's why it returnsSystem.Data.SqlClient.SqlDataReader
.Actually, this is done by
Console.WriteLine
because there is no overload calledConsole.WriteLine(SqlDataReader)
and that's why it callsConsole.WriteLine(object)
overload and inside this method,object.ToString()
will called probably.Read()
method reads your result row by row.You can easily get your values indexed
0
likereader[0]