using System;
using System.Data;
using System.Data.SqlClient;
class InfoMessage
{
public static void InfoMessageHandler(object mySender, SqlInfoMessageEventArgs myEvent)
{
Console.WriteLine("The following message was produced:
" + myEvent.Errors[0]);
}
public static void Main(){
SqlConnection mySqlConnection = new SqlConnection("server=(local)SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI;");
mySqlConnection.InfoMessage += new SqlInfoMessageEventHandler(InfoMessageHandler);
mySqlConnection.Open();
SqlCommand mySqlCommand = mySqlConnection.CreateCommand();
mySqlCommand.CommandText = "PRINT 'This is the message from the PRINT statement'";
mySqlCommand.ExecuteNonQuery();
mySqlCommand.CommandText = "RAISERROR('This is the message from the RAISERROR statement', 10, 1)";
mySqlCommand.ExecuteNonQuery();
mySqlConnection.Close();
}
}
Month: February 2011
How to use the StateChange event
using System;
using System.Data;
using System.Data.SqlClient;
class StateChange
{
public static void StateChangeHandler(object mySender, StateChangeEventArgs myEvent)
{
Console.WriteLine("mySqlConnection State has changed from "+myEvent.OriginalState + "to "+myEvent.CurrentState);
}
public static void Main(){
SqlConnection mySqlConnection =new SqlConnection("server=(local)SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI;");
mySqlConnection.StateChange +=new StateChangeEventHandler(StateChangeHandler);
Console.WriteLine("Calling mySqlConnection.Open()");
mySqlConnection.Open();
Console.WriteLine("Calling mySqlConnection.Close()");
mySqlConnection.Close();
}
}
SQL SERVER TYPES, COMPATIBLE Sql* TYPES, AND GetSql* METHODS
SQL SERVER TYPE Sql* TYPE GetSql* METHOD
bigint SqlInt64 GetSqlInt64()
int SqlInt32 GetSqlInt32()
smallint SqlInt16 GetSqlInt16()
tinyint SqlByte GetSqlByte()
bit SqlBoolean GetSqlBoolean()
decimal SqlDecimal GetSqlDecimal()
numeric SqlDecimal GetSqlDecimal()
money SqlMoney GetSqlMoney()
smallmoney SqlMoney GetSqlMoney()
float SqlDouble GetSqlDouble()
real SqlSingle GetSqlSingle()
datetime SqlDateTime GetSqlDateTime()
smalldatetime SqlDateTime GetSqlDateTime()
char SqlString GetSqlString()
varchar SqlString GetSqlString()
text SqlString GetSqlString()
nchar SqlString GetSqlString()
nvarchar SqlString GetSqlString()
ntext SqlString GetSqlString()
binary SqlBinary GetSqlBinary()
varbinary SqlBinary GetSqlBinary()
image SqlBinary GetSqlBinary()
sql_varient object GetSqlValue()
timestamp SqlBinary GetSqlBinary()
uniqueidentifier SqlGuid GetSqlGuid()
Shows the SQL server types, the corresponding Sql types, and the GetSql*** methods used to read a column as the Sql type
Sql* TYPE VALUES
===============================================================================
Sql Binary A variable-length string of binary data.
SqlBoolean An integer with either a 1 or 0 value.
SqlByte An 8-bit unsigned integer value between 0 and 2^8 - 1 (255).
SqlDateTime A date and time between 12:00:00 AM January 1, 1753 and 11:59:59 PM December 31, 9999. This is accurate to 3.33 milliseconds.
SqlDecimal Fixed precision and scale numeric value between -1038 + 1 and 1038 - 1.
SqlDouble A 64-bit floating-point number between -1.79769313486232E308 and 1.79769313486232E308 with 15 significant figures of precision.
SqlGuid A 128-bit integer value (16 bytes) that that is unique across all computers and networks.
SqlInt16 A 16-bit signed integer between -2^15 (-32,768) and 2^15 - 1 (32,767).
SqlInt32 A 32-bit signed integer between-2^31 (-2,147,483,648) and 2^31 - 1 (2,147,483,647).
SqlInt64 A 64-bit signed integer between -2^63 (-9,223,372,036,854,775,808) and 2^63 - 1 (9,223,372,036,854,775,807).
SqlMoney A currency value between -922,337,203,685,477.5808 and 922,337,203,685,477.5807. This is accurate to 1/10,000th of a currency unit.
SqlSingle A 32-bit floating-point number between -3.402823E38 and 3.402823E38 with seven significant figures of precision.
SqlString A variable-length string of characters.
how to execute a SELECT statement using a SqlCommand object
using System;
using System.Data;
using System.Data.SqlClient;
class ExecuteSelect {
public static void Main() {
SqlConnection mySqlConnection = new SqlConnection("server=localhost;database=Northwind;uid=sa;pwd=sa");
SqlCommand mySqlCommand = mySqlConnection.CreateCommand();
mySqlCommand.CommandText =
"SELECT TOP 5 CustomerID, CompanyName, ContactName, Address " +
"FROM Customers " +
"ORDER BY CustomerID";
mySqlConnection.Open();
SqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader();
while (mySqlDataReader.Read()) {
Console.WriteLine("mySqlDataReader[" CustomerID"] = " + mySqlDataReader["CustomerID"]);
Console.WriteLine("mySqlDataReader[" CompanyName"] = " + mySqlDataReader["CompanyName"]);
Console.WriteLine("mySqlDataReader[" ContactName"] = " + mySqlDataReader["ContactName"]);
Console.WriteLine("mySqlDataReader[" Address"] = " + mySqlDataReader["Address"]);
}
mySqlDataReader.Close();
mySqlConnection.Close();
}
}
How to control the command behavior to return a single row
using System;
using System.Data;
using System.Data.SqlClient;
class SingleRowCommandBehavior
{
public static void Main()
{
SqlConnection mySqlConnection =new SqlConnection("server=(local)SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI;");
SqlCommand mySqlCommand = mySqlConnection.CreateCommand();
mySqlCommand.CommandText ="SELECT ID, FirstName, LastName FROM Employee";
mySqlConnection.Open();
SqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(CommandBehavior.SingleRow);
while (mySqlDataReader.Read()){
Console.WriteLine("mySqlDataReader[" ID"] = " +
mySqlDataReader["ID"]);
Console.WriteLine("mySqlDataReader[" FirstName"] = " +
mySqlDataReader["FirstName"]);
Console.WriteLine("mySqlDataReader[" LastName"] = " +
mySqlDataReader["LastName"]);
}
mySqlDataReader.Close();
mySqlConnection.Close();
}
}
Populate a DataSet object with a range of rows from a SELECT statement
using System;
using System.Data;
using System.Data.SqlClient;
class PopulateDataSetUsingRange
{
public static void Main()
{
SqlConnection mySqlConnection =new SqlConnection("server=(local)SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI;");
SqlCommand mySqlCommand = mySqlConnection.CreateCommand();
mySqlCommand.CommandText =
"SELECT TOP 5 ID, FirstName, LastName " +
"FROM Employee " +
"ORDER BY ID";
SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter();
mySqlDataAdapter.SelectCommand = mySqlCommand;
DataSet myDataSet = new DataSet();
mySqlConnection.Open();
Console.WriteLine("Retrieving rows from the Employee table");
int numberOfRows = mySqlDataAdapter.Fill(myDataSet, 1, 3, "Employee");
Console.WriteLine("numberOfRows = " + numberOfRows);
mySqlConnection.Close();
DataTable myDataTable = myDataSet.Tables["Employee"];
foreach (DataRow myDataRow in myDataTable.Rows)
{
Console.WriteLine("ID = " + myDataRow["ID"]);
Console.WriteLine("FirstName = " + myDataRow["FirstName"]);
Console.WriteLine("LastName = " + myDataRow["LastName"]);
}
}
}

