管理信息系统设计(ADO.NET连接SQL SERVER并实现修改增加删除)

为完成管理信息系统课程设计,特意和小伙伴一起学了ADO.NET,参考了中国大学MOOC东华大学的信息系统与数据库技术,开发环境是visual studio 和 sql server 2014,写下总结目的是将知识梳理一遍以免学了就忘,其次就是能够给学习ADO的朋友一点点帮助。 我也是几天学了点皮毛,写的不好多多包涵。

一,功能界面

  1.总体界面

管理信息系统设计(ADO.NET连接SQL SERVER并实现修改增加删除)_第1张图片

2."插入"           

点击插入后结果,会出现确定和删除键,点击其他键不会出现确定删除键,如下:

管理信息系统设计(ADO.NET连接SQL SERVER并实现修改增加删除)_第2张图片

3."修改"

点击车次停留信息表中选择,内容会自动填充到文本框,可对其更改,再点击“修改”键,文本框会清空且下方会显示“修改成功提示语”,如下:

 

管理信息系统设计(ADO.NET连接SQL SERVER并实现修改增加删除)_第3张图片

 

管理信息系统设计(ADO.NET连接SQL SERVER并实现修改增加删除)_第4张图片

 4. "删除"

选择表中要删除的记录,文本框自动填充内容,再点击'删除:键,文本框清空且出现提示语

二,后台代码

修改,删除,增加代码都是相似的,注意存储过程,经常会有明明在数据库中建立了存储过程可是运行时出现"存储过程不存在"的情况,主要都是参数没写全,最好把字段全部写上,代码中有说明。

using System;
using System.Collections;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Web.Security;


public partial class test : System.Web.UI.Page
{
   //先定义连接,操纵,数据集等
    static SqlConnection cn;                       
    static SqlDataAdapter da = new SqlDataAdapter();
    static SqlCommandBuilder SqlBulider = new SqlCommandBuilder(da);
    static DataSet ds = new DataSet();
   
   // 显示数据表 “车次停留”表
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            ConnectionStringSettings settings; 
            settings = ConfigurationManager.ConnectionStrings["trainConnectionString"];//从配置文件中提取连接字符串
            if (settings != null) 
            {
                cn = new SqlConnection(settings.ConnectionString);

                SqlCommand cmd = new SqlCommand();
                cmd.CommandText = "select trainnumber as 车次,number as 站次,station as 站名,arrivaltime as 到达时间," +
            "departuretime as 发车时间,stationtime as 停留时间 from seek_train"; 
                cmd.Connection = cn;         //cmd的属性,connection和commandtext以上 也可这样表示 Sqlcommand cmd=new sqlCommand("select trainnumber as 车次,number as 站次,station as 站名,arrivaltime as 到达时间," +
            "departuretime as 发车时间,stationtime as 停留时间 from seek_train", cn) 
                da.SelectCommand = cmd;

                cn.Open();
                da.Fill(ds, "trainschedules");
                cn.Close();
              
                //绑定
                GridView1.DataSource = ds.Tables["trainschedules"].DefaultView;
                GridView1.DataBind();
            }
        }
        //一开始确定和取消按键是不存在的
        ButtonOK.Visible = false;      
        ButtonCancel.Visible = false;
    }



    //点击“修改”按钮,修改选中记录,更新数据集
    protected void Button4_Click(object sender, EventArgs e)
    {
        SqlCommand cmd = new SqlCommand();
        
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.CommandText = "proc_Updatetrainschedules"; //存储过程,涉及SQL SERVER数据库建立存储过程,名字为pro_Updatetrainschedules,下一节有具体建立代码
        cmd.Connection = cn;

        SqlParameter param1 = new SqlParameter("@trainnumber", SqlDbType.Char,10);
        param1.Value = TextBox1.Text;
        cmd.Parameters.Add(param1);
        SqlParameter param2 = new SqlParameter("@number", SqlDbType.Int);
        param2.Value = TextBox2.Text;
        cmd.Parameters.Add(param2);
        SqlParameter param3= new SqlParameter("@station", SqlDbType.Char,10);
        param3.Value = TextBox3.Text;
        cmd.Parameters.Add(param3);
        SqlParameter param4 = new SqlParameter("@arrivaltime", SqlDbType.NChar);
        param4.Value = TextBox4.Text;
        cmd.Parameters.Add(param4);
        SqlParameter param5 = new SqlParameter("@departuretime", SqlDbType.NChar);
        param5.Value = TextBox5.Text;
        cmd.Parameters.Add(param5);
        SqlParameter param6 = new SqlParameter("@stationtime", SqlDbType.NChar);
        param6.Value = TextBox6.Text;
        cmd.Parameters.Add(param6);
        cn.Open();
        try
        {
            int i = cmd.ExecuteNonQuery();//执行存储过程插入记录,/变量i存放命令执行影响的记录行数
            if (i > 0)
            {
                Label6.Text = "提示:" + i + "条记录修改成功";
            }
        }
        catch (SqlException ex)//捕获Try后的程序段执行异常
        {
            Label6.Text = ex.Message;//报告出错的异常原因
        }
        cn.Close(); //关闭数据库连接
        //调用自定义过程UpdateDataBaseAndRefreshGridView(),将更新回写数据库
        //并且刷新GridView1和清空文本框
        UpdateDataBaseAndRefreshGridView();

    }




    //点击“删除”按钮,删除选中记录,更新数据集
    protected void Button5_Click(object sender, EventArgs e)
    {
        //建SqlCommand对象cmd并给相关属性赋值,指定命令类型和存储过程名
        SqlCommand cmd = new SqlCommand();
        cmd.CommandText =  "proc_Deletetrainschedules";
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Connection = cn;

        //定义和创建SqlParameter对象param,并为cmd的操作命令的参数赋值,一定要注意6个参数要写全,写对,否则会出现"存储过程"不存在的问题。
        SqlParameter param1 = new SqlParameter("@trainnumber", SqlDbType.Char, 10);
        param1.Value = TextBox1.Text;
        cmd.Parameters.Add(param1);
        SqlParameter param2 = new SqlParameter("@number", SqlDbType.Int, 10);
        param2.Value = TextBox2.Text;
        cmd.Parameters.Add(param2);
        SqlParameter param3 = new SqlParameter("@station", SqlDbType.Char, 10);
        param3.Value = TextBox3.Text;
        cmd.Parameters.Add(param3);
        SqlParameter param4 = new SqlParameter("@arrivaltime", SqlDbType.NChar);
        param4.Value = TextBox4.Text;
        cmd.Parameters.Add(param4);
        SqlParameter param5 = new SqlParameter("@departuretime", SqlDbType.NChar);
        param5.Value = TextBox5.Text;
        cmd.Parameters.Add(param5);
        SqlParameter param6 = new SqlParameter("@stationtime", SqlDbType.NChar);
        param6.Value = TextBox6.Text;
        cmd.Parameters.Add(param6);
        cn.Open();
        try
        {
            int i = cmd.ExecuteNonQuery();//变量i存放命令执行影响的记录行数
            if (i > 0)
            {
                Label6.Text = "提示:" + i + "条记录删除成功";
            }
        }
        catch (SqlException ex) //捕获Try后的程序段执行异常
        {
            Label6.Text = ex.Message;//报告出错的异常原因
        }
        cn.Close();//关闭数据库连接

        //调用自定义过程UpdateDataBaseAndRefreshGridView(),将更新回写数据库
        //并且刷新GridView1和清空文本框
        UpdateDataBaseAndRefreshGridView();
    }

    //在GridView1选择一条记录,文本框显示该记录各项
    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        //获得GridView1的选中行,并把各项赋给各TextBox显示
        GridViewRow row = GridView1.SelectedRow;
        TextBox1.Text = row.Cells[1].Text;
        TextBox2.Text = row.Cells[2].Text;
        TextBox3.Text = row.Cells[3].Text;
        TextBox4.Text = row.Cells[4].Text;
        TextBox5.Text = row.Cells[5].Text;
        TextBox6.Text = row.Cells[6].Text;

    }
    //在GridView1翻页时,刷新GridView1
    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;
        GridView1.DataSource = ds.Tables["trainschedules"].DefaultView;
        GridView1.DataBind();
    }




    //点击“插入”按钮,清空文本框,显示“确定”和“取消”按钮
    protected void Button6_Click1(object sender, EventArgs e)
    {
        ButtonOK.Visible = true;
        ButtonCancel.Visible = true;

        TextBox1.Text = "";
        TextBox2.Text = "";
        TextBox3.Text = "";
        TextBox4.Text = "";
        TextBox5.Text = "";
        TextBox6.Text = "";
    }

    //点击“确定”按钮,添加一条新记录,并将文本框的内容赋值给该新记录,更新数据集
    protected void Button7_Click(object sender, EventArgs e)
    {
        //创建SqlCommand对象cmd并给相关属性赋值,指定命令类型和存储过程名
        SqlCommand cmd = new SqlCommand();
        cmd.CommandText = "proc_AddtrainRecord";
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Connection = cn;

        //定义和创建SqlParameter对象param,并为cmd的操作命令的参数赋值
        SqlParameter param1 = new SqlParameter("@trainnumber", SqlDbType.Char, 10);
        param1.Value = TextBox1.Text;
        cmd.Parameters.Add(param1);
        SqlParameter param2 = new SqlParameter("@number", SqlDbType.Int,10);
        param2.Value = TextBox2.Text;
        cmd.Parameters.Add(param2);
        SqlParameter param3 = new SqlParameter("@station", SqlDbType.Char,10);
        param3.Value = TextBox3.Text;
        cmd.Parameters.Add(param3);
        SqlParameter param4 = new SqlParameter("@arrivaltime", SqlDbType.NChar);
        param4.Value = TextBox4.Text;
        cmd.Parameters.Add(param4);
        SqlParameter param5 = new SqlParameter("@departuretime", SqlDbType.NChar);
        param5.Value = TextBox5.Text;
        cmd.Parameters.Add(param5);
        SqlParameter param6 = new SqlParameter("@stationtime", SqlDbType.NChar);
        param6.Value = TextBox6.Text;
        cmd.Parameters.Add(param6);
        cn.Open();
        try
        {
            int i = cmd.ExecuteNonQuery(); //变量i存放命令执行影响的记录行数
            if (i > 0)
            {
                Label6.Text = "提示:" + i + "条记录插入成功";
            }
        }
        catch (SqlException ex)                //捕获Try后的程序段执行异常
        {
            Label6.Text = ex.Message; //报告出错的异常原因
        }
        cn.Close();                            //关闭数据库连接

        //调用自定义过程UpdateDataBaseAndRefreshGridView(),将更新回写数据库
        //并且刷新GridView1和清空文本框
        UpdateDataBaseAndRefreshGridView();
    }

    //点击“取消”按钮,清空文本框
   protected void Button8_Click(object sender, EventArgs e)
    {
        TextBox1.Text = "";
        TextBox2.Text = "";
        TextBox3.Text = "";
        TextBox4.Text = "";
        TextBox5.Text = "";
        TextBox6.Text = "";
    }

    //更新回写数据库,并且刷新GridView1和清空文本框
    protected void UpdateDataBaseAndRefreshGridView()
    {
        //将更新后的ds数据集ds
        da.Update(ds, "trainschedules");

        //重新获取数据源,以便通过绑定刷新GridView1,以反映修改结果
        ds.Clear();
        cn.Open();
        da.Fill(ds, "trainschedules");
        cn.Close();
        //为控件GridView1指定显示的数据源,将数据源绑定到GridView控件
        GridView1.DataSource = ds.Tables["trainschedules"].DefaultView;
        GridView1.DataBind();

        TextBox1.Text = "";
        TextBox2.Text = "";
        TextBox3.Text = "";
        TextBox4.Text = "";
        TextBox5.Text = "";
        TextBox6.Text = "";
    }

三,数据库存储过程建立

在数据库的”可编程性“中的”存储过程“鼠标右击新建。

管理信息系统设计(ADO.NET连接SQL SERVER并实现修改增加删除)_第5张图片

1.增加

USE [train]   //数据库名为train
GO
/****** Object:  StoredProcedure [dbo].[proc_AddtrainRecord]    Script Date: 2019/1/20 17:05:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[proc_AddtrainRecord]  //ALTER改成CREATE 执行后会变成ALTER
    @trainnumber char(10), 
	@number int,
	@station char(10),
	@arrivaltime nchar(10),
	@departuretime nchar(10),
	@stationtime nchar(10)
AS
BEGIN
insert into seek_train  //表名为seek_train values(@trainnumber,@number,@station,@arrivaltime,@departuretime,@stationtime)
END

 

2.删除

USE [train]
GO
/****** Object:  StoredProcedure [dbo].[proc_Deletetrainschedules]    Script Date: 2019/1/20 17:10:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[proc_Deletetrainschedules]
	@trainnumber char(10) , 
	@number int,
	@station char(10),
	@arrivaltime nchar(10),
	@departuretime nchar(10),
	@stationtime nchar(10)
AS
BEGIN
	delete from seek_train where trainnumber=@trainnumber and  number=@number
END

3.更新

USE [train]
GO
/****** Object:  StoredProcedure [dbo].[proc_Updatetrainschedules]    Script Date: 2019/1/20 17:11:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[proc_Updatetrainschedules]
    @trainnumber char(10), 
	@number int,
	@station char(10),
	@arrivaltime nchar(10),
	@departuretime nchar(10),
	@stationtime nchar(10)
AS
UPDATE seek_train 
set trainnumber=@trainnumber,number=@number,station=@station,arrivaltime=@arrivaltime,departuretime=@departuretime,stationtime=@stationtime
where trainnumber=@trainnumber and number=@number

 

你可能感兴趣的:(管理信息系统设计(ADO.NET连接SQL SERVER并实现修改增加删除))