一、数据库连接
1、DBF数据库
小型应用使用DBF库其实挺方便的,特别是后台VFP中对数据库的操作简单容易。
//需要安装VFP,XP/WIN2000下还需替换操作系统的VFPODBC.DLL,否则可能不能正常连接。
//引用中先添加
using System.Data.Odbc;
//连接串,数据库放在data目录下
string strCon="Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB="+Server.MapPath("data")+";Exclusive=No;NULL=NO;Collate=Machine;BACKGROUNDFETCH=NO;DELETED=NO";
//连接
OdbcConnection sqlcon=new OdbcConnection(strCon);
//执行SQL,查询出满足条件的记录
OdbcCommand objCommand = new OdbcCommand("select * from admin.dbf where recn()=3",sqlcon);
//打开
sqlcon.Open();
//关闭
sqlcon.Close();
2、SQL数据库
//引用中先添加
using System.Data.SqlClient;
//连接串,wjml是一个数据库,用户sa,无密码
string strCon = "Data Source=(local);Database=wjml;Uid=sa;Pwd=";
二、基本操作
先定义连接串strCon、sql语句sqlstr,建立连接sqlcon后。
1、单条记录处理
//读出,放在打开数据库后
OdbcDataReader MyDataReader = objCommand.ExecuteReader();
MyDataReader.Read();
//赋值给TextBox控件Input1
Input1.Text = MyDataReader["帐号"].ToString();
//数据更新修改语句
OdbcCommand sqlcom=new OdbcCommand("UPDATE admin SET 帐号='33333' where recn()=3",sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery(); //执行更新
sqlcon.Close();
2、建立记录集
//放在建立连接的语句后
SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
DataSet myds = new DataSet();
myda.Fill(myds,"表名");
3、遍历记录集
DataTable dt=ds.Tables[0];
//遍历行
for(int i=0;i<dt.Rows.Count;i++)
{
str1=dt.Rows[i][3].ToString().Trim();//取i行第3列值,一般要注意要去空格
}
4、更新、删除SQL语句
//更新
string sqlstr = "UPDATE swjml SET 拟办意见='"+txt1.Text+"',阅办时限='"+ybsx+"',总经理意见='"+txt3.Text+"',市场副总='"+txt4.Text+"',计网副总='"+txt5.Text+"',综合部='"+txt6.Text+"',市场部='"+txt7.Text+"',计网部='"+txt8.Text+ "',财务部='"+txt9.Text+"',营销中心='"+txt10.Text+ "' where 文件名='" + strid + "'" ;
//删除
string sqlstr = "delete from wjml where 文件名='" + wjm + "'";
//执行
SqlCommand sqlcom = new SqlCommand(sqlstr,sqlcon);
sqlcom.ExecuteNonQuery();
5、绑定到GRIDVIEW
void bind()
{
string sqlstr = "select * from wjml order by 发文时间 DESC";
SqlConnection sqlcon = new SqlConnection(strCon);
SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
DataSet myds = new DataSet();
myda.Fill(myds, AspNetPager1.PageSize * (AspNetPager1.CurrentPageIndex - 1), AspNetPager1.PageSize, "wjml");
//上句用到了分页控件,普通写法:myda.Fill(myds,"表名");
GridView1.DataSource = myds;
GridView1.DataKeyNames = new string[] { "文件名" }; //关键字
GridView1.DataBind();
}