1_
Read scalar value from database
C# // create and open connection SqlConnection connection = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=basics;Integrated Security=True"); connection.Open(); // create and execute sql command SqlCommand command = new SqlCommand(); command.CommandText = "SELECT count(*) FROM MY_SCHEMA.Persons"; command.Connection = connection; int i = (int)command.ExecuteScalar(); connection.Close();
2_
Insert data and return row id
C#
command.CommandText = "INSERT INTO Persons (FirstName, LastName) VALUES ('John','First');SELECT SCOPE_IDENTITY();";
int i = Convert.ToInt32(command.ExecuteScalar());
3_
Populate datatable from database
C#
// create and open connection
SqlConnection connection = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=basics;Integrated Security=True");
// create SQLCommand
SqlCommand command = new SqlCommand();
command.CommandText = "SELECT * FROM MY_SCHEMA.Persons";
command.Connection = connection;
// create DataTable with SqlAdapter and load data
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(command);
try {
connection.Open();
int i = da.Fill(dt);
}
finally { connection.Close(); }
4_
Populate datable with SqlDataReader
C#
DataTable dt = new DataTable();
using (SqlConnection connnection = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=basics;Integrated Security=True"))
{
SqlCommand command = new SqlCommand("SELECT * FROM MY_SCHEMA.Persons", connnection);
connnection.Open();
SqlDataReader dr = command.ExecuteReader(CommandBehavior.CloseConnection);
if (dr.HasRows)
{
dt.Load(dr);
}
return dt;
}
5_
Read table data with SqlDataReader field by field
C#
SqlConnection connection = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=basics;Integrated Security=True");
SqlCommand command = new SqlCommand();
command.CommandText = "SELECT * FROM MY_SCHEMA.Persons";
command.Connection = connection;
DataTable dt = new DataTable();
try
{
connection.Open();
SqlDataReader reader = command.ExecuteReader();
bool tableCreated = false;
while (reader.Read())
{
if (!columnsCreated)
{
// create table columns
for (int i = 0; i < reader.FieldCount; i++)
{
string lsName = reader.GetName(i);
Type t = reader[i].GetType();
DataColumn column;
if (t.Name != "DBNull")
{
column = new DataColumn(lsName, t);
}
else
{
column = new DataColumn(lsName, System.Type.GetType("System.Byte[]"));
}
dt.Columns.Add(column);
}
columnsCreated = true;
}
DataRow dr = dt.NewRow();
for (int i = 0; i < reader.FieldCount; i++)
{
dr[i] = reader.GetValue(i);
}
dt.Rows.Add(dr);
}
}
finally { connection.Close(); }
6_
Update data in the database with SQL
C# // create and open connection SqlConnection connection = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=basics;Integrated Security=True"); connection.Open(); // create and execute sql command SqlCommand command = new SqlCommand(); command.CommandText = "UPDATE MY_SCHEMA.Persons SET Height = 185 WHERE firstName='John'"; command.Connection = connection; int i = (int)command.ExecuteNonQuery(); connection.Close();
7_
Propagate changes made in DataTable to SQL database with SqlParameters
C#
// create and open connection
SqlConnection connection = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=basics;Integrated Security=True");
// create SQLCommand
SqlCommand command = new SqlCommand();
command.CommandText = "SELECT * FROM MY_SCHEMA.Persons";
command.Connection = connection;
// create DataTable with SqlAdapter and load data
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(command);
try
{
connection.Open();
int i = da.Fill(dt);
dt.Rows[1]["Height"] = 187; // This line simulates user interaction. Imagine user changed height of the person in the first row.
SqlCommand updateCommand = new SqlCommand();
updateCommand.CommandText = "UPDATE MY_SCHEMA.Persons SET Height = @height WHERE id = @id";
updateCommand.Connection = connection;
updateCommand.Parameters.Add(new SqlParameter("@id", SqlDbType.Int, 5, "id")); // this parameter identifies the record being updated (5 is max length))
updateCommand.Parameters.Add(new SqlParameter("@height", SqlDbType.Int, 5, "Height")); // this parameter updates actual value
da.UpdateCommand = updateCommand;
da.Update(dt);
}
finally { connection.Close(); }