C#连接数据库总结

来源:互联网 发布:广东深圳淘宝地址大全 编辑:程序博客网 时间:2024/04/30 07:50

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是初始目录

Ⅱ.操作数据库方式(有两种)

⑴用适配器SqlDataAdapterdataset数据集一对连接数据库

步骤语法如下:

①创建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对象生成InsertCommandUpdateCommandDeleteCommand方法,这样不需要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对象是由cmdExecuteReader()产生的

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 传递列的名称或序号引用,可以访问返回行的每一列。

. 显示数据的不同方式用不同的数据库操作方式

⒈如果数据是以文本框显示的,那么增删改就要用SqlCommandExecuteNonQuery()进行操作。

⒉如果数据是以dataGridView显示的,想在dataGridView中直接进行操作的,那么增删改就要用SqlDataAdapterSqlCommandBuilder进行操作

⒊如果想要单击dataGridView的某一行,就把该行的相应数据显示在文本框中,就要触发dataGridViewMouseClike事件,然后在里面书写如下的代码:

textBox1.Text=dataGridView1.CurrentRow.Cells[0].Value.ToString()

⒋如果想要通过在文本框里单击回车,将表里相应数据显示在文本框里,就要触发textboxkeypress事件,然后在里面书写如下代码:

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();

}