0


数据库实验五:C#连接数据库_Visual Studio连接SQLserver_保姆级教程

IDE:Visual Studio

数据库:SQLserver

默认已经搭建好School数据库,已附上数据库LDF和MDF文件下载链接

使用的IDE是Visual Studio,安装教程如下:

https://blog.csdn.net/InnerPeaceHQ/article/details/121716088

请尽量使用Visual Studio进行实验,特别是当你的数据库是SQLserver的时候。我试过用vscode和idea做这个实验,均失败。vscode要配很多插件然后一堆报错,idea只支持MySQL。

创建项目

安装好Visual Studio后新建项目:

选择带有C#角标的Windows窗体应用(.NET Framework)

注意看清楚必须选择这个一字不差,不要选到什么“窗体控件库”“窗体类库”或者含有VB角标的项目,一定是带有C#角标的Windows窗体应用(.NET Framework)!!!

界面绘制

窗体设计基本操作:

1.工具箱拖拉拽

在左边工具箱进行控件的拖拉拽。如果你这里找不到工具箱可以用快捷键Ctrl + Alt + X调出。

2.修改控件基本信息:

比如我已经拖拽一个button到工作布上,鼠标单击button,右下角显示button的属性

在属性中比较重要的是Text和Name。其中Name的作用是写代码的时候Name要与代码中对这个控件使用的名字一致;Text的作用是修改窗口中该控件显示的文字。单击右边的文字就可以修改。

3.新建窗口:

右键单击项目->添加->新建项

选择“窗体(Windows窗体)”

运用以上操作按照示例把下面三个窗口设计好:

Form1主窗口:

各个控件Name修改:

学号输入框 txt_sid
姓名输入框 txt_sname
查询按钮 btn_find
新增按钮 btn_add
删除按钮 btn_delete
编辑按钮 btn_update
DataGridCiew列表控件 studentsList

Form2新增窗口:

各个控件Name修改:

学号输入框 txt_add_sid
姓名输入框 txt_add_sname
邮箱输入框 txt_add_email
年级输入框 txt_add_grade
确定按钮 btn_confirm_add

Form3修改窗口:

各个控件Name修改:

学号输入框 txt_update_sid
姓名输入框 txt_update_sname
邮箱输入框 txt_update_email
年级输入框 txt_update_grade
确定按钮 btn_confirm_update

配置数据库

修改app.config文件:

<appSettings>
    <addkey="connectionString"value="server=localhost;database=School;uid=sa;pwd=xxxx"/>
</appSettings>

请将pwd=xxxx更换为你自己的密码。

右键引用->添加引用

勾选System.Configuration

打开SQL Server Management Studio

如果以前没有配置过的话,应该使用默认的Windows身份验证

连接后,右键单击属性

在“安全性”中,勾选第二项

确保“连接”中的状态如下:

安全性->登录名->sa->右键属性

在这里把密码修改为修改你刚刚在代码里设置的密码:

确保状态中的勾选情况如下:

打开SQL配置管理器:

SQL Server网络配置->SQLEXPRESS的协议->TCP/IP,双击:

在IP地址这里,把IP3的“IP地址”改成“127.0.0.1”,把“TCP端口”改成“1433”

把IPAII的“TCP端口”改成“1433”

点击确定

在SQL Server服务->SQL Server(SQLEXPRESS)右键重启

重启后尝试是否能用SQL Server身份验证登陆成功

编写代码

右键窗口可查看代码

在Form1.cs如下所示位置添加如下代码:

​
static string connectionString =System.Configuration.ConfigurationManager.AppSettings["connectionString"];

        public static DataSet Query(String sql)
        {
            SqlConnection con = new SqlConnection(connectionString);
            SqlDataAdapter sda = new SqlDataAdapter(sql, con);
            DataSet ds = new DataSet();
            try
            {
                con.Open();
                sda.Fill(ds, "students");
                return ds;
            }
            catch (SqlException e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                sda.Dispose();
                con.Close();
            }
        }

        public static int ExecuteSql(String sql)
        {
            SqlConnection con = new SqlConnection(connectionString);
            SqlCommand cmd = new SqlCommand(sql, con);
            try
            {
                con.Open();
                int rows = cmd.ExecuteNonQuery();
                return rows;
            }
            catch(SqlException e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                cmd.Dispose();
                con.Close();
            }
        }

​

在Form3.cs中修改Form3函数:

public Form3(string sid,string sname,string email,string grade)
{
    InitializeComponent();
    txt_update_sid.Text = sid;
    txt_update_sname.Text = sname;
    txt_update_email.Text = email;
    txt_update_grade.Text = grade;
}

在主窗口双击“查询”按钮,在生成的函数中填入如下代码:

string sid = txt_sid.Text.Trim();
string sname = txt_sname.Text.Trim();
this.studentsList.DataSource = Query("select * from students where sid like '%" + sid + "%' and sname like '%'").Tables["students"];

在主窗口双击“新增”按钮,在生成的函数中填入如下代码:

Form2 childrenForm = new Form2();
childrenForm.Owner = this;
childrenForm.Show();

在主窗口双击“删除”按钮,在生成的函数中填入如下代码:

int a = studentsList.CurrentRow.Index;
string sid = studentsList.Rows[a].Cells[0].Value.ToString().Trim();
string sql = "delete from students where sid='" + sid + "'";

if(ExecuteSql(sql)>0)
{
    MessageBox.Show("删除成功");
}

在主窗口双击“修改”按钮,在生成的函数中填入如下代码:

int a = studentsList.CurrentRow.Index; 
string[] str = new string[studentsList.Rows.Count]; 
for (int i=0; i < studentsList.Columns.Count; i++) 
{
     str[i] = studentsList.Rows[a].Cells[i].Value.ToString();
}
Form3 childrenForm = new Form3(str[0], str[1], str[2], str[3]);
childrenForm.Owner = this;
childrenForm.Show();

在Form2学生信息添加窗口中双击“确定”按钮,在生成的函数中填入如下代码:

string sid = txt_add_sid.Text.Trim();
string sname = txt_add_sname.Text.Trim();
string email = txt_add_email.Text.Trim();
string grade = txt_add_grade.Text.Trim();
string sql = "insert into students values('" + sid + "','" + sname + "','" + email + "','" + grade + "')";
Form1.ExecuteSql(sql);
this.Close();

在Form3学生信息修改窗口双击“确定”按钮,在生成的函数中填入如下代码:

string sid = txt_update_sid.Text.Trim();
string sname = txt_update_sname.Text.Trim();
string email = txt_update_email.Text.Trim();
string grade = txt_update_grade.Text.Trim();
string sql = "update students set sname='"+sname+"',email='"+email+"',grade='"+grade+"' where sid='"+sid+"'";
Form1.ExecuteSql(sql);
this.Close();

测试程序

运行之前,确保你本地的SQL server数据库中有名为School的数据库,并有名为STUDENTS,包含sid,sname,email,grade四个属性的表。

查询(模糊查询):

添加:

删除:

修改:

参考文章:

https://blog.csdn.net/qq_20115319/article/details/107318790

主要修改了该文章中创建项目时给的截图不对的问题,以及补充了IP配置方面的内容


本文转载自: https://blog.csdn.net/m0_67402218/article/details/139014842
版权归原作者 sc真的kswl 所有, 如有侵权,请联系我们删除。

“数据库实验五:C#连接数据库_Visual Studio连接SQLserver_保姆级教程”的评论:

还没有评论