下面记录一下对基于c#操作mysql数据库的学习。
1.数据库的连接
String connectStr = "server=;port=;user=;password=; database=;charset=utf8";
MySqlConnection con = new MySqlConnection(connectStr);
con.Open();
2.SQL语句的执行
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select * from student"
int i=Convert.ToInt32(cmd.ExecuteScalar())//执行语句并获取指定的表中数据量,常与聚合函数配合使用
int ii=Convert.ToInt32(cmd.ExecuteNonQuery())//执行语句并返回受影响的行数
MySqlDataReader sdr=cmd.ExecuteReader();//执行语句并获取指定的表
while(sdr.Read())//遍历方法
{
listView1.Items.Add(sdr["总分"].ToString());
}
3.DataReader 的使用
sdr.HasRow可判断数据中是否有值,注意针对一个数据库,创建多个sdr,则在创建下一个前,要用sdr.close()关闭上一个sdr。
4.DataAapter的使用
数据的存储:
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = con;
sda = new MySqlDataAdapter();
ds = new DataSet();
sda.SelectCommand = cmd;//获取cmd语句
cmd.CommandText = "select * from course_2";
sda.Fill(ds, "course_2");//执行并将表存储于ds中
数据的更新:
DataTable dt = ds.Tables["course_2"];
sda.FillSchema(dt, SchemaType.Mapped);
DataRow dr = dt.Rows.Find(textBox2.Text);
dr["course"] = textBox3.Text.Trim();
dr["type"] = textBox4.Text.Trim();
dr["credit"] = textBox5.Text.Trim();
MySqlCommandBuilder cmdb = new MySqlCommandBuilder(sda);
//sda.UpdateCommand = cmdb.GetUpdateCommand();
sda.Update(dt);
5.datatable datarow datacolumn 的使用
DataTable dt = ds.Tables["pro3"];//去除dataset中的pro3表
string a = dt.TableName;
MessageBox.Show(a);
// DataColumn dc = dt.Columns["总分"];
DataRow dr = dt.NewRow();//为pro3添加行
sda.FillSchema(dt, SchemaType.Mapped);
/*dr["姓名"] = "dfs";
dr["编号"] = 32438;
dr["专业组"] = "土木";
dr["总分"] = 680;
dt.Rows.Add(dr);*/
DataRow[] dr2 = dt.Select("编号=195360");//可以选取满足条件的多个行
MessageBox.Show(dr2[0][0].ToString());
DataColumn dcc = new DataColumn();//为表添加一个列
dcc.ColumnName = "学校";
dcc.DataType = typeof(string);
dt.Columns.Add(dcc);
MySqlCommandBuilder cmdb = new MySqlCommandBuilder(sda);//执行更新操作
sda.Update(dt);