1.连接SQLserver数据库需要使用命名空间 using System.Data.SqlClient;
而连接Access数据库需要使用命名空间 using System.Data.OleDb;
2.建立连接
//sqlserver
string strcon;
strcon = "server='(local)';database='mytable';uid='sa';pwd='sa';";
SqlConnection con = new SqlConnection(strcon);
//或者
OleDbConnection con = new OleDbConnection();
con.ConnectionString = "Provider=SQLOLEDB;Data Source=(local); Initia Catalog=mytable;uid=sa;pwd=sa";
//Access
string str = "provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("access.mdb") + "";
OleDbConnection con = new OleDbConnection(str);
try
{
con.Open();
Label1.Text="连接成功";
con.Close();
}
catch
{
Label1.Text="连接失败";
}
3.填充DataSet数据集
SqlDataAdapter da = new SqlDataApapter("select * from news",con);
DataSet ds = new DataSet();
da.Fill(ds,"tablename");
for (int i = 0;i<ds.Tables["tablename"].Rows.Count; i++)
{
Response.Write(ds.Tables["tablename"].Rows[i]["title"].ToString() + "<br/>");
}
4.不需返回结果的Sql执行
SqlCommand cmd = SqlCommand("insert into news values('title')",con);
cmd.ExecuteNonQuery(); //会返回一个整数,表示受已执行的SQL语句或存储过程影响的行数
5.调用存储过程
SqlCommand cmd = new SqlCommand("getdetail",con); //使用存储过程
cmd.CommandType = CommandType.StoredProcedure; //设置Command对象的类型
SqlParameter spr;
spr = cmd.Parameters.Add("@id",SqlDbType.Int);
spr = cmd.Parameters.Add("@title",SqlDbType.NChar,50);
spr.Direction = ParameterDirection.Output;
spr = cmd.Parameters.Add("@count",SqlDbType.Int);
spr.Direction=Parameter.Direction.ReturnValue;
cmd.Parameters["@id"].Value = 1;
cmd.Parameters["@title"].Value = null;
cmd.ExecuteNonQuery();
Label1.Text = cmd.Parameters["@count"].Value.ToString();
6.返回单个结果值
SqlCommand cmd = new SqlCommand("select count(*) from news",con);
Label1.Text = cmd.ExecuteScalar().ToString();
7.DataTable数据表对象
DataTable table = new DataTable("mytable"); //创建一个DataTable 对象
Table.CaseSensitive = false; //设置不区分大小写
Table.MinimumCapacity=100; //设置DataTable 初始大小
Table.TableName = "newtable"; //设置DataTable的名称
DataColumn Colum = new DataColumn();
Colum = Table.Columns.Add("id",typeof(int)); //增加一个列
Colum = Table.Columns.Add("title",typeof(string)); //增加一个列
DataRow Row = Table.NewRow();
Row[0] = 1; //Row["id"]=1;
Row[1] = "datarow"; //Row["title"]="datarow";
Table.Rows.Add(Row);
8.DataView数据对象视图
DataView dv = new DataView();
DataSet ds = DataSet();
ds.Tables.Add(Table);
dv = ds.Tables["newtable"].DefaultView;
dv.RowFilter = "id" = "1";
dv.Sort = "id";
要显示DataSet中某项的值,可以使用语法ds.Tables["表名称"].Rows[0]["列名称"].ToString()来显示,
这种语法通常需要知道行的数目以免在访问数据时越界。
9.DataReader读取数据库
每次的访问或操作只有一个记录存存在服务器的内存中。
con.Open();
SqlCommand cmd = new SqlCommand("select * from mynews",con);
try
{
DataReader dr = cmd.ExecuteReader();
while(dr.Read())
{
Response.Write(dr["title"].ToString() + "<br/>");
}
}
catch(Exception ee)
{
Response.Write(ee.ToString());
}
finally
{
dr.Close();
con.Close();
}