C#连接数据库总结
Ⅰ.连接数据库字符串语句(有两种)
⑴SqlConnection conn=new SqlConnection(“server=.;database=数据库名;uid=sa;pwd=sa”); // uid=sa;pwd=sa这是以sqlserver的身份登录
⑵SqlConnection conn=new SqlConnection(“data source=.;Initial Catalog=数据库名;Integrated Security=true”); Integrated secrity=true这是以Windows的身份登录, Initial Catalog是初始目录
Ⅱ.操作数据库方式(有两种)
⑴用适配器SqlDataAdapter和dataset数据集一对连接数据库
步骤语法如下:
①创建Sqlconnection对象
②创建SqlDataAdapter对象
String sql=”select * from book”;
SqlDataAdapter da = new SqlDataAdapter(sql, con);
③创建dataset数据集对象
DataSet ds=new DataSet();
④使用Fill方法将数据库中的表填充到DataSet的表中Da.Fill(ds,”book”);
⑤利用DataGridView或者其他控件对象编辑或显示数据
DataGridView1.datasource=ds.Tables[“book”];
SqlDataAdapter对数据库进行操作,是属于无连接操作。它与SqlCommandBuilder组合。一般情况下,只需要提供SELECT语句和连接字符串创建SqlDataAdapter对象,然后利用SqlCommandBuilder对象生成InsertCommand、UpdateCommand和DeleteCommand方法,这样不需要SQL语句,然后使用SqlDataAdapter对象得Update方法更新数据库。
语法如下:
SqlDataAdapter da = new SqlDataAdapter(“select * from book”, con);
SqlCommandBuilder cmb=new SqlCommandBuilder(da);
cmb. InsertCommand(); //UpdateCommand()的用法一样
int m = dataGridView1.CurrentRow.Index; //这两句用于对于dataGridView1中指定行的数据的删除操作
ds.Tables["book"].Rows[m].Delete();
da. Update(ds,”book”); //更新表中数据
ds.Tables[“book”].Clear(); //清除表中所有记录
最后重新连接数据库,把数据重新加载一次
⑵用Sqlcommand连接数据库,对数据库进行增删改查操作
⒈用Sqlcommand对象的ExecuteNonQuery()进行增删改操作,不返回命令执行的表数据,仅返回操作所影响的行数,所以该方法的返回值是int型的
步骤语法如下:
①创建SqlConnection对象
②打开连接 con.Open(); //这句我老是忘记写
③创建SqlCommand对象
String insql=”insert book values(‘aa’,’java’)”;
SqlCommand cmd=new SqlCommand(insql,con);
④int m=cmd. ExecuteNonQuery(); //记录影响的数据行数
if(m>0)
{
MessageBox.Show(“添加成功”);
}
⑤关闭连接 con.Close(); //这句我老是忘记写
⒉进行查询操作有两个方法
①ExecuteScalar()方法
该方法用于执行返回仅一个值的查询,比如使用count函数求表中记录个数
②ExecuteReader()方法
该方法根据提供的select语句,返回一个可以顺序读取的SqlDataReader对象,可以使用对象的read()循环依次读取每个记录中各字段(列)的内容
常用语法如下:
SqlDataReader对象是由cmd的ExecuteReader()产生的
SqlDataReader dr=cmd. ExecuteReader();
使用对象的read()循环依次读取每个记录中各字段(列)的内容
while (dr.Read())
{
comboBox1.Items.Add(dr.GetString(1));
}
if (dr.Read())
{
label4.Text = dr["uright"].ToString();
}
使用 DataReader 对象的 Read 方法可从查询结果中获取行。通过向 DataReader 传递列的名称或序号引用,可以访问返回行的每一列。
Ⅲ. 显示数据的不同方式用不同的数据库操作方式
⒈如果数据是以文本框显示的,那么增删改就要用SqlCommand和ExecuteNonQuery()进行操作。
⒉如果数据是以dataGridView显示的,想在dataGridView中直接进行操作的,那么增删改就要用SqlDataAdapter和SqlCommandBuilder进行操作
⒊如果想要单击dataGridView的某一行,就把该行的相应数据显示在文本框中,就要触发dataGridView的MouseClike事件,然后在里面书写如下的代码:
textBox1.Text=dataGridView1.CurrentRow.Cells[0].Value.ToString()
⒋如果想要通过在文本框里单击回车,将表里相应数据显示在文本框里,就要触发textbox的keypress事件,然后在里面书写如下代码:
if (e.KeyChar == 13) {
conn.Open();
string sql = "select bname,bconcern from book where bid='" + textBox3.Text + "'";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
textBox4.Text = dr.GetString(0); //这就将表里字段赋给文本框
textBox6.Text = dr.GetString(1);
}
conn.Close();
}