数据库操作在现实应用中还是很重要的,掌握最基本的更删改也是有必要的,这里介绍一些类来使用。
SqlConnection 实例化的对象用于连接数据库。连接语句有很多,网上也能够找到很多。
Data Source=@Serverip;Initial Catalog=@catalog;Integrated Security=true;是比较简单的连接语句
SqlDataAdapter 数据库连接适配器,实例化对象用于对数据库进行一些操作。
SqlCommandBuilder 我也没搞清楚这个类的具体用法,不过在更删改前需要实例化对象对SqlDataAdapter 的对象进行操作,据说是生成一些Sql语句。
DataSet 获取数据集,用于对一些控件数据源的绑定。
以学生数据表为例子
共有四个属性 ID NAME SEX AGE
可以把数据库连接封装成一个类
class Connect
{
public static SqlConnection connect()
{
String str = "Data Source=@Serverip;Initial Catalog=@catalog;Integrated Security=true;";
SqlConnection con = new SqlConnection(str);
con.Open();
return con;
}
}
获取数据库表中的数据并与 dataGridView绑定
string str = "select * from Student;";
sqlcon = Connect.connect(); //新建连接
sadpter = new SqlDataAdapter(str, sqlcon); //实例化SqlDataAdapter
ds = new DataSet(); //用于存储数据集
sadpter.Fill(ds); //按照表的格式填充进DataSet中
dataGridView1.DataSource = ds.Tables[0]; //与之绑定
获取需要修改的数据元组,修改后对数据库写回
DataTable dt = ds.Tables[0]; //获取当前表
sadpter.FillSchema(dt, SchemaType.Mapped); //填充规则
DataRow dr = dt.Rows.Find(txtID.Text.ToString()); //查找当前行
dr["ID"] = txtID.Text;
dr["name"] = txtName.Text;
dr["age"] = txtAge.Text;
if (txtSex.Text == "男")
{
dr["sex"] = "man";
}
else
{
dr["sex"] = "woman";
}
sqlcombul = new SqlCommandBuilder(sadpter); //实例化SqlCommandBuilder
sadpter.Update(ds); //修改数据库
新增加一行
DataTable dt = ds.Tables[0]; //获取当前表
sadpter.FillSchema(dt, SchemaType.Mapped); //填充规则
DataRow dr = dt.NewRow();
dr["ID"] = txtID.Text;
dr["name"] = txtName.Text;
dr["age"] = txtAge.Text;
if (txtSex.Text == "男")
{
dr["sex"] = "man";
}
else
{
dr["sex"] = "woman";
}
ds.Tables[0].Rows.InsertAt(dr, 0);
sqlcombul = new SqlCommandBuilder(sadpter);
sadpter.Update(ds); //对数据库进行写回
删除当前选中行
dataGridView1.Rows.Remove(dataGridView1.SelectedRows[0]); //获取并在表上删除当前行
sqlcombul = new SqlCommandBuilder(sadpter);
sadpter.Update(ds);