作业相关
学习教程
总 结
链 接
表扬栏
   返回主页   后退          

ASP.NET读写删查SQL数据库
1.每步都要用数据库连接字符串 :当前项目中先声明
 public static string connstr = "Data Source=.;Password=*****;User ID=sa;Initial Catalog=my";
 字符串具体内容:通过配置数据源来完成,确定服务器名称 登录用户名 密码 数据库名称等信息
2.实例化连接
 SqlConnection conaa = new SqlConnection(connstr);
 if (conaa.state==ConnectionState.Closed) //数据连接是不是关闭状态
   {conaa.Open();} //打开连接
3.读数据表:读取或判断是不是包含指定条件的记录:id为条件,province为表名,provinceid为对应的字段名
 string sqla=string.format("select * from province where provinceid='{0}'",id);
 SqlCommand cmd=new SqlCommand(sqla,conaa);
 SqlDataReader cc=cmd.ExecuteRead();
 if (cc.read())  //用这个条件来判断是不是找到了
  {
     Response.Write("<script>alert('数据找到了')</script> //提示数据找到了
    string aa=cc["provincename"].tostring(); //也可以读取找到的数据来做进一步的操作
  }
  //这是当只有一个记录符合条件这样来判断

 string aaa="";声明一个空串
  while (cc.read()) 循环读取数据
   {
     if (aaa=="") //当为空串时表明没有累加过,是第一次累加,所以不加逗号
       aaa+=cc["provincename"]
     else
       aaa+=","+cc["provincename"]//不是空串,则表明至少累加过一次了,所以这次需要先加逗号
   } //当找到多条记录时这样来循环查找,每找到一行就读取"provincename"字段的值,并累加到变量aaa中,值之间用逗号分隔

4.写数据:就是插入记录:假设当前表名:province,只有两个字段:provinceid,provincename;
  string sfid=txtid.text.trim();//用变量来保存需要插入的provinceid的值
  string sfname=txtsfname.text.trim(); //用变量来保存需要插入的provincename的值
  string sqla=string.format("insert into province (provinceid,provincename) values ('{0}','{1}')",sfid,sfname);
  Sqlcommand cmd=new SqlCommand(sqla,conaa);
   int hs = cmd.ExecuteNonQuery();//根据受影响的行数来判断是否插入成功
   if (hs > 0)
    {
     Response.Write("<script>alert('注册成功!')</script>");
     con.Close(); //成功后关闭连接
     txtmm.Text = "";//清空文本框内容,等待输入新内容
     txtyhm.Text = "";
    }
  else
    {
     Response.Write("<script>alert('注册失败!')</script>");
     con.Close();//注册失败,也得关闭连接;文本框不清空,修改后再插入
    }
5.删除数据:假设当前表名:province,只有两个字段:provinceid,provincename;
  string sfid=txtid.text.trim();//用变量来保存需要删除记录对应的provinceid的值,删除必须加条件,否则都被删除了
  string sqla=string.format("delete from province where provinceid='{0}'",sfid);
  SqlCommand cmd=new SqlCommand(sqla,conaa);
   int hs = cmd.ExecuteNonQuery();//根据受影响的行数来判断是否插入成功
   if (hs > 0)
    {
     Response.Write("<script>alert('删除成功!')</script>");
     con.Close(); //成功后关闭连接
    }
   else
    {
     Response.Write("<script>alert('删除失败!')</script>");
    }
6.更新数据:假设当前表名:province,只有两个字段:provinceid,provincename;
  string sfname=txtname.text.trim();//用变量来保存需要删除记录对应的provinceid的值,删除必须加条件,否则都被删除了
  string sqla=string.format("update province set provincename='{0}' where provinceid='{1}'",sfname,sfid);
  SqlCommand cmd=new SqlCommand(sqla,conaa);
   int hs = cmd.ExecuteNonQuery();//根据受影响的行数来判断是否插入成功
   if (hs > 0)
    {
     Response.Write("<script>alert('删除成功!')</script>");
     con.Close(); //成功后关闭连接
    }
   else
    {
     Response.Write("<script>alert('删除失败!')</script>");
    }
7.插入时有可能由于主键或不能重复的字段冲突而造成插入失败,想法遇到这情况能自动做更新操作最好了
  方法一:插入前先查找相关的主键或不能重复的字段,看看有没有重复的,如果没有,则插入;如果有,则更新
  方法二:只能在MYSQL中实现
    语法如下:INSERT INTO table1 (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;
    假设table1表中的主键或unique索引是a字段的话,
    当执行上面sql时候,如果数据库table1表中已存在a=1的记录则更新这条记录的c字段的值为原来值+1,
    ON DUPLICATE KEY UPDATE 语法的目的是为了解决当表中UNIQUE索引或者primary key(主键)出现重复时,就会执行update操作,返回值2,
    如果没有出现重复就执行insert操作,返回值1。
    INSERT INTO test.`User`(uid,name,sex,age) VALUES(1,"xiaowang2","male",22)
    ON DUPLICATE KEY UPDATE name=VALUES(name),sex=VALUES(sex),age=VALUES(age)
    如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,
    则执行旧行UPDATE;如果不会导致唯一值列重复的问题,则插入新行。
    注意:ON DUPLICATE KEY UPDATE只是MySQL的特有语法,并不是SQL标准语法!
Region1

2025促销:香港特价空间,最低仅需20元,可永久使用!
本站空间由 三维免费空间 友情提供