c# sql 详细介绍:如何使用C#与SQL Server数据库进行交互

<div style="margin: 0 auto; padding: 20px; font-family: -apple-system, BlinkMacSystemFont, “Segoe UI”, Roboto, “Helvetica Neue”, Arial, sans-serif;”>

c# sql 详细介绍:如何使用C#与SQL Server数据库进行交互

一.创建数据库用VS 创建数据库的步骤:

1.打开vsc# sql,创建一个新项目c# sql,分别在搜素框中选择C#、、桌面,然后选择窗体应用(.NET )

2.打开“视图-服务器资源管理器”,右键单击“数据连接”c# sql,如图。在弹出的菜单中选择【创建新SQL 数据库】选项,弹出“创建新的SQL 数据库”对话框。

3.对应项目c# sql 详细介绍:如何使用C#与SQL Server数据库进行交互,系统添加数据库连接。(要是电脑没有sql ,可以选中“视图-sql 资源管理器”创建数据库)

连接成功即如下(第一次可能只有一个)

4.新建数据库(学生成绩数据库),点开第二个小三角-右键点击数据库-添加新数据库

自己取名(最好采用英文命名)

5.选中该数据库并创建新表,点击新建数据库前的小三角-右键表-添加新表

6.表中插入属性,双击即可打开

7.右键选中表查看表中数据

二.使用控件实现连接数据库并对其操作(1)在工具箱中拖出控件和控件(可以改名使其功能明确)

(2)双击,进入代码编写(检查数据库的连接)

 private void button1_Click(object sender, EventArgs e)
 {
     string strcom = @"Data Source = (localdb)ProjectModels;Initial Catalog = XSCJDB; Integrated Security = True;";
     SqlConnection sqlcon;
     using (sqlcon = new SqlConnection(strcom))
     {
         sqlcon.Open();
         MessageBox.Show("数据库连接状态" + sqlcon.State.ToString(), "第一个对话框");
     }
     MessageBox.Show("数据库连接状态" + sqlcon.State.ToString(), "第二个对话框");
 }

注意:

此处应根据自己的电脑修改,具体步骤如下:

单击刚建的数据库-在右下角解决方案资源管理器中找到连接字符串-复制第一个True前面的内容

(3)双击双击,进入代码编写(插入数据)

  private void button2_Click(object sender, EventArgs e)
  {
      string strcom = @"Data Source = (localdb)ProjectModels;Initial Catalog = XSCJDB; Integrated Security = True;";
      SqlConnection conn =null;
      try
      {
          conn = new SqlConnection(strcom);
          conn.Open();
          SqlCommand mycmm= new SqlCommand();
          mycmm.Connection = conn;
          mycmm.CommandType = CommandType.Text;
          mycmm.CommandText = @"insert into
                             student(Id,name,major,grade,tel)
                             values(@Id,@name,@major,@grade,@tel)";
          mycmm.Parameters.Add(new SqlParameter("@Id", 2022002));
          mycmm.Parameters.Add(new SqlParameter("@name", "李四"));
          mycmm.Parameters.Add(new SqlParameter("@major", "CS"));
          mycmm.Parameters.Add(new SqlParameter("@grade","80"));
          mycmm.Parameters.Add(new SqlParameter("@tel","13999216"));
          int returnvalue=mycmm.ExecuteNonQuery();
          if(returnvalue!=-1)
          {
              MessageBox.Show("数据插入成功");
          }
      }
      catch(Exception ex)
      {
          if(conn != null)
          {
              MessageBox.Show("数据插入失败" + ex.Message);
          }
      }
  }

(4)双击双击,进入代码编写(查询全部数据)

 // 处理button3的点击事件,从数据库中查询并显示所有数据
 private void button3_Click(object sender, EventArgs e)
 {
     // 数据库连接字符串
     string strcom = @"Data Source = (localdb)ProjectModels;Initial Catalog = XSCJDB; Integrated Security = True;";
     SqlConnection conn = null;
     try
     {
         // 初始化并打开数据库连接
         conn = new SqlConnection(strcom);
         conn.Open();
         // 创建并配置SqlCommand对象
         SqlCommand mycmm = new SqlCommand
         {
             Connection = conn,
             CommandType = CommandType.Text,
             CommandText = @"select * from student"
         };
         // 使用SqlDataAdapter填充DataSet
         SqlDataAdapter sda = new SqlDataAdapter(mycmm);
         DataSet ds = new DataSet();
         sda.Fill(ds, "studentList");
         // 显示查询结果到DataGridView
         dataGridView2.DataSource = ds.Tables["studentList"].DefaultView;
         // 关闭数据库连接
         conn.Close();
     }
     catch (Exception ex)
     {
         // 处理异常
         MessageBox.Show(ex.Message);
         if (conn != null)
         {
             conn.Close();
         }
     }
 }

(5)在设计界面再拖入以及一个(用于根据姓名查询)

(6)编写代码(按名字查询)

       // 处理button4的点击事件,根据名字查询数据
       private void button4_Click(object sender, EventArgs e)
       {
           // 数据库连接字符串
           string strcon = @"Data Source = (localdb)ProjectModels;Initial Catalog = XSCJDB; Integrated Security = True;";
           SqlConnection myConnection = new SqlConnection(strcon);
           try
           {
               // 打开数据库连接
               myConnection.Open();
               // 创建并配置SqlCommand对象
               SqlCommand myCommand = new SqlCommand
               {
                   Connection = myConnection,
                   CommandType = CommandType.Text,
                   CommandText = @"select * from student where name =@name"
               };
               // 添加参数并赋值
               myCommand.Parameters.Add(new SqlParameter("@name", textBox1.Text));
               // 执行查询命令并检查结果
               int res = Convert.ToInt32(myCommand.ExecuteScalar());
               if (res == 0)
               {
                   throw new Exception("查无此人");
               }
               // 使用SqlDataAdapter填充DataSet
               SqlDataAdapter sda = new SqlDataAdapter(myCommand);
               DataSet ds = new DataSet();
               sda.Fill(ds, "xr");
               // 显示查询结果到DataGridView
               dataGridView2.DataSource = ds.Tables["xr"].DefaultView;
               // 关闭数据库连接
               myConnection.Close();
           }
           catch (Exception ex)
           {
               // 处理异常
               MessageBox.Show(ex.ToString());
               if (myConnection != null)
               {
                   myConnection.Close();
               }
           }
       }

(7)对于的代码

// 保存编辑单元格的原始值
object cellTempValue = null;
// 单元格开始编辑事件
private void dataGridView2_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
{
    // 保存单元格的原始值
    cellTempValue = this.dataGridView2.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
}
// 单元格结束编辑事件
private void dataGridView2_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
    // 如果单元格值没有改变,返回
    if (object.Equals(cellTempValue, this.dataGridView2.Rows[e.RowIndex].Cells[e.ColumnIndex].Value))
    {
        return;
    }
    // 弹出确认修改对话框
    if (MessageBox.Show("是否确定修改,并更新到数据库", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK)
    {
        // 如果取消修改,恢复原值
        this.dataGridView2.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = cellTempValue;
        return;
    }
    // 数据库连接字符串
    string strcom = @"your string";
    SqlConnection myConnection = new SqlConnection(strcom);
    try
    {
        // 打开数据库连接
        myConnection.Open();
        // 创建并配置SqlCommand对象
        SqlCommand myCommand = new SqlCommand
        {
            Connection = myConnection,
            CommandType = CommandType.Text
        };
        // 构建更新SQL语句
        string strSql = String.Format(
            "update student set {0}='{1}' where Id='{2}'",
            this.dataGridView2.Columns[e.ColumnIndex].HeaderText, // 当前选择的列名
            this.dataGridView2.Rows[e.RowIndex].Cells[e.ColumnIndex].Value, // 选中单元格修改后的值
            this.dataGridView2.Rows[e.RowIndex].Cells[0].Value // 选中单元格修改前的值
        );
        // 设置命令文本
        myCommand.CommandText = strSql;
        // 执行更新命令
        int res = myCommand.ExecuteNonQuery();
        // 检查更新是否成功
        if (res == 0)
        {
            throw new Exception("修改失败");
        }
        else
        {
            MessageBox.Show("修改成功");
        }
        // 关闭数据库连接
        myConnection.Close();
    }
    catch (Exception ex)
    {
        // 处理异常
        MessageBox.Show(ex.ToString());
        if (myConnection != null)
        {
            myConnection.Close();
        }
    }
}

三.实现1.设计界面

2.运行

2.1连接数据库(点击连接数据库-确定-确定)即连接成功

2.2增加数据

2.3查询全部数据

2.4按名字查询

四.小结及易错点

这个 Forms应用程序展示了如何连接本地数据库,并实现了数据插入、查询和删除等基本功能。以下是对该应用程序的小结:

1. 数据库连接与测试:通过点击按钮可以测试与数据库的连接,确保应用程序能够成功连接到本地数据库。

2. 数据插入:点击相应按钮可以将预设的学生信息插入到数据库的表中,这提供了一种简单的数据录入方式。

3. 数据查询:通过点击按钮,应用程序能够查询并显示表中的所有数据c# sql 详细介绍:如何使用C#与SQL Server数据库进行交互,使用户可以轻松地查看数据库中存储的信息。

4. 按姓名查询:应用程序还提供了按姓名查询学生数据的功能,用户只需输入学生姓名,即可获取相应的学生信息。

5. 数据删除:用户可以根据学生姓名删除相应的学生记录,这增加了对数据的管理和维护功能。

在编写这个应用程序时,需要注意以下易错点:

通过对这些易错点的注意和处理,可以确保应用程序的稳定性、安全性和用户友好性。同时,还可以考虑进一步优化应用程序的功能和性能,提升用户体验。

公告:
1. 本站所有资源来源于用户上传和网络,如有侵权请联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长处理!
6. 本站不售卖代码,资源标价只是站长收集整理的辛苦费!如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
7. 站长QQ号码 2205675299

资源库 - 资源分享下载网 » c# sql 详细介绍:如何使用C#与SQL Server数据库进行交互

常见问题FAQ

关于资源售价和售后服务的说明?
本站所有资源的标价均为本站收集资源的辛苦费,不代表资源本身的价值。软件是高智慧高价值的商品,不可能是白菜价。本站资源标价只是赞助费用,收取的赞助费仅用来维持本站的日常运营!毕竟收集整理资料需要投入云计算资源和站长大量的精力。
代码有没有售后服务和技术支持?
由于代码的运行具有不可预见性,本站不保证代码完整可运行,不提供技术支持和售后服务。 本站原创代码都是站长自己开发的,可以有偿提供技术支持服务。 网站里标明【亲测】的代码都是站长亲测过的,其他的代码由于精力有限,没有一一测试,不能保证代码就一定能够使用,更没有技术支持服务,下载前请自行斟酌。
有没有搭建服务?
由于搭建服务比较费时费力,所以本站除了原创代码外均不提供搭建服务。本站分享代码纯属兴趣爱好,不以盈利为目的,请勿咨询有没有搭建服务,谢谢理解。
链接地址失效了怎么办?
请带上资源链接地址联系客服,工作时间内我们看到后将第一时间回复。
关于解压密码
本站资源一般都没有加密,如果发现需要解压密码的,那么就输入 hao.35dc.com 试试。

发表评论

资源库,由老程序员细心甄别、精心筛选,只为提供优质的源码资源

关于我们 联系我们