C#数据库操作

作为一名C#初学者,除了各种对象,窗口属性,类库调用一脸懵逼以外,数据库链和操作也是相当头痛,以下是我学习C#窗体程序链接数据库时遇到的问题和解决方法。

首先使用VS链接数据库

数据库链接方法可以百度,这里就不一一说明了;

点击链接好的数据库,在属性里面有一项链接字符串;C#程序里面会使用这个属性进行数据库的链接操作;

我在项目里面创建了一个对数据库经行操作的类;

代码如下:(因为这是工具型的类,所以我定义成了静态类,方便调用)

using System.Data;
using System.Data.SqlClient;//需要用到的数据库操作的类库;


static string constr = "Data Source=localhost;Initial Catalog=tempdb;Integrated Security=True";//数据库的链接字符串;

static SqlConnection sqlcon = new SqlConnection(constr);//使用链接字符串建立数据库连接;


连接上数据库后就可以经行数据库的增删查改操作;

数据库修改后需要查询是否操作成功,我写了一个方法查看数据库受影响的行数,代码如下:

 static public int ExcuteNoQuery(string cmdstr)//查询数据库受影响的行数并返回,形参是对数据库进行的操作的sql语句;
        {
            int rsl = 0;
            try//数据库操作可能会出现不可预知的错误,使用try--catch方法防止程序出现错误时崩溃;
            {
                SqlCommand cmd = new SqlCommand(cmdstr, sqlcon);//使用sql语句操作数据库;
                if (sqlcon.State != ConnectionState.Open)//判断数据库是否打开
                {
                    sqlcon.Open();
                }
                rsl = cmd.ExecuteNonQuery();//查询数据库受影响的行数返回给rsl;
            }
            catch (Exception ex)
            {
                MessageBox.Show("" + ex);//弹窗显示错误信息;
            }
            finally
            {
                sqlcon.Close();//关闭数据库;
            }
            return rsl;//返回操作结果;
        }

上面这个方法写好以后,就可一经行各种操作了;

增添信息:

static public int InsertUser(int num,string id, string name, string model, string kind,string unit)//添加信息
        {
            string sqlcmd = "insert into Companys(CID,CNUM,CNAME,CMODEL,CKIND,CUNIT) values ('" + id + "','"+num+"','" + name + "','" + model + "','"+kind+"','" + unit + "')";设置增添信息的sql语句;
            return ExcuteNoQuery(sqlcmd);//调用方法执行sql语句;
        }

修改信息:

 static public int UpdataInfo(int cid, string cnum, string name, string model, string kind, string unit)//修改数据库信息;参数是数据库表内的字段名
        {
            string sqlcmd1 = "update Companys set Companys.cid = '" + cnum + "' where Companys.cnum = '" + cid + "'";设置数据库语句;
            string sqlcmd2 = "update Companys set Companys.CNAME = '" + name + "' where Companys.cnum = '" + cid + "'";
            string sqlcmd3 = "update Companys set Companys.CMODEL = '" + model + "' where Companys.cnum = '" + cid + "'";
            string sqlcmd4 = "update Companys set Companys.CKIND = '" + kind + "' where Companys.cnum = '" + cid + "'";
            string sqlcmd5 = "update Companys set Companys.CUNIT = '" + unit + "' where Companys.cnum = '" + cid + "'";
            if(ExcuteNoQuery(sqlcmd1)==1&& ExcuteNoQuery(sqlcmd2)==1&& ExcuteNoQuery(sqlcmd3)==1 && ExcuteNoQuery(sqlcmd4)== 1&&ExcuteNoQuery(sqlcmd5)==1) ;//调用ExcuteNoQuery(strring cmdstr)方法执行sql语句并返回操作结果;
            {
                return 1;
            }
        }


查询数据库数据:

 private static DataTable QueryData(string sqlcmd)//查询信息
        {
            DataSet myds = new DataSet();//声明数据表;
            try
            {
                SqlDataAdapter sda = new SqlDataAdapter(sqlcmd, sqlcon);//调用数据库链接打开数据库
                if (sqlcon.State != ConnectionState.Open)
                {
                    sqlcon.Open();
                }
                sda.Fill(myds);//填充数据表
                sqlcon.Close();
                return myds.Tables[0];//返回数据表;

            }
            catch (Exception ex)
            {
                MessageBox.Show("" + ex);
            }
            return null;
        }

删除数据:

static public int DeletInfo(string cid)//删除数据,参数是数据库内的一个字段;
        {
            int rst = Convert.ToInt32(cid);
            string sqlcmd = "delete from Companys where Companys.Cnum = '" + rst + "'";//设置sql语句;
            return ExcuteNoQuery(sqlcmd);//执行sql语句;
        }

关于sql语句请自行百度;如果需要使用代码,请修改相关语句数值,如数据库名,数据字段;

以上代码仅初学者供参考;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值