ADO.NET的基本操作

    通过SqlDataAdapter操作DataSet修改数据库和其余的数据库操作大致都是一样的,主要是语法的不同,如DataSet的使用,都是使用SqlDataAdapter将数据填充到DataSet中,然后操作DataSet时使用的是行和列的操作,比如一行的操作ds.Tables["student"].Rows[0].Delete();行中的一列则可以使用ds.Tables["student"].Rows[0]["Name"] = name;来操作。

   ADO.NET包括了几个组件类:SqlConnection、SqlCommand、SqlDataAdapter、SqlDataReader、DataSet、DataTable。

   先写几个功能:通过SqlDataAdapter操作DataSet修改数据库,代码如下:

            DataSet ds = new DataSet();
            string strConnection = Properties.Settings.Default.sqlConnection;
            SqlConnection conn = new SqlConnection(strConnection);
            conn.Open();
            string name = textBox2.Text;
            string age = textBox3.Text;
            string id = textBox1.Text;
            SqlDataAdapter sda = new SqlDataAdapter("select * from student where id =" + id + "", conn); //必须使用select返回一个主键或者一个列属性
            SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(sda);
          //  string updateCommand = cmdBuilder.GetUpdateCommand().CommandText;
            string deleteCommand = cmdBuilder.GetDeleteCommand().CommandText;
            sda.Fill(ds,"student");
            /* 
              ds.Tables["student"].Rows[0]["Name"] = name;  //更新操作,一列
              ds.Tables["student"].Rows[0]["Age"] = age;
              sda.Update(ds,"student"); //更新数据库
              conn.Close();
             */
              ds.Tables["student"].Rows[0].Delete();   //删除操作,一行
              sda.Update(ds, "student");  //更新数据库
              conn.Close();

通过SqlDataAdapter操作DataSet修改数据库,插入一条记录,代码如下:

 string strconn = Properties.Settings.Default.sqlConn;
            using (SqlConnection conn = new SqlConnection(strconn))
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand();
                cmd.CommandText = "select * from student1";
                cmd.CommandType = CommandType.Text;
                cmd.Connection = conn;
                SqlDataAdapter adapter = new SqlDataAdapter();
                SqlCommandBuilder build = new SqlCommandBuilder(adapter);
                DataSet ds = new DataSet();
                adapter.SelectCommand = cmd;
                adapter.Fill(ds);
                DataRow row = ds.Tables[0].NewRow();
                row["id"] = "4";
                row["name"] = "jjf";
                row["age"] = "14";
                ds.Tables[0].Rows.Add(row);
                adapter.Update(ds);
                adapter.Dispose();
                cmd.Dispose();
                conn.Dispose();
            }



使用SqlDataReader,代码如下:

 string sqlConn = Properties.Settings.Default.sqlConnection;
            SqlConnection conn = new SqlConnection(sqlConn);
            conn.Open();
            SqlCommand command = conn.CreateCommand();
            string id = textBox1.Text;
            command.CommandText = "select * from student where Id = "+id+"";
            SqlDataReader sdr = command.ExecuteReader();      //执行查询显示用SqlDataReader sdr = command.ExecuteReader()
            if (sdr.Read())
            {
                textBox1.Text = sdr["id"].ToString();  // textBox1.Text = sdr[0].ToString();  
                textBox2.Text = sdr["name"].ToString();
                textBox3.Text = sdr["age"].ToString();
                sdr.Close();

将数据库中的信息显示在DataGridView上,代码如下:

用于将数据库中表的信息显示到DataGridView上的数据操作,这个数据库的操作和增删改查的不一样,函数和参数有变化,SqlCommand的不一样。
string strConnection = Properties.Settings.Default.SqlConnection;
            SqlConnection conn = new SqlConnection(strConnection);
            //conn.Open();
            string sqlcommand = "select * from student";
            SqlCommand command = new SqlCommand(sqlcommand,conn);//初始化具有查询文本和连接的SqlCommand新实例。
            SqlDataAdapter sda = new SqlDataAdapter(command);//初始化SqlDataAdapter类的新实例,用指定的SqlCommand实例作为参数的属性。
            DataSet ds = new DataSet(); //
            sda.Fill(ds); //把数据库中的数据通过SqlDataAdapter对象填充DataSet。
            dataGridView1.DataSource = ds.Tables[0]; //获取包含在 System.Data.DataSet 中的表的集合。注意数组的下标
            conn.Close();

Sql常用命令:

写SQL语句时为字符串,但是其中有变量时则需要用+来将其括起来,其他的任何都用双引号引起来。在最后面如果是一个用+括起来的变量,则最后面必须用“”,因为它整体是一个字符串。如果数据库中字段为varchar类型的,则在SQL语句中写变量时要用‘’括起来,而单引号则在旁边的双引号的外面。数据库中是int型则在SQL语句中不用加。例如:
command.CommandText = "insert into student(Id,Name,Age)values("+Id+",'"+Name+"',"+Age+")";
command.CommandText = "UPDATE student set Name='"+Name+"' ,Age="+Age+" Where Id = "+ Id + "";
command.CommandText = "delete from student where Id=" + Id + "";
command.CommandText = "select Name,Age from student where Id=" + Id + "";

 双击DataGridView的一行,实现弹窗,将所选中的值传给下一个窗口的控件中,利用构造函数传值,代码如下:

Form1中:

  private void dataGridView1_DoubleClick(object sender, EventArgs e)
        {
            Form3 f3 = new Form3(dataGridView1.CurrentRow);  //传过去的是一行,在Form3中接受的是dataGridViewRow的对象
            f3.Show();
        }


 

Form3中,代码:

 public partial class Form3 : Form
    {
        public DataGridViewRow dgvr;   //传过来的是一行,所以这里声明一个DataGridViewRow
        public Form3(DataGridViewRow dgvr1)
        {
            InitializeComponent();
            dgvr = dgvr1;
            getValue();          
        }
        public void getValue() 
        {
            textBox1.Text = dgvr.Cells[0].Value.ToString();   //选择行的第一列。
            textBox2.Text = dgvr.Cells[1].Value.ToString();
            textBox3.Text = dgvr.Cells[2].Value.ToString();
        }}

 

未完待续

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值