数据结构修改后,ASPXGRIDVIEW遇到的问题

为了区别集团其他分公司,决定给相应的表加上factory_id 作为标识,并设为主键。

1.修改部门表后发现aspxgridview居然修改后不会更新,也不报错,比较奇怪,最后是删掉后重新再拉控件才完成的。

2.由于前期通过修改存活标识来重写删除方法,添加了factory_id后,又把该列Visable=fault,于是删除不成功,报缺少@factory_id的错误,于是又重写删除的sql语句“UPDATE [department] SET live_tag='0' WHERE [dept_id] = @dept_id”,将“and factory_id=@factory”删除。

3.有了前面的教训,修改资产信息表时特别小心,先将数据库中的表修改,再修改添加方法(也就加个字段),然后一看,居然以前的查询结果不会影响,暗自高兴,开始以为会改很多。

4.最后重新将每个功能过了一遍,还是发现了不少问题。为了能测试,新建一张临时的用户权限表,因为平台集成了比较多的系统,所以将每个系统分不同角色:浏览,修改,不可见;准备在用户登陆的时候查出对每个系统的权限用session来传给母版页,在母版页中做判断对一个系统的权限。暂时没有更好的方法,先这样做。还有就是关于数据库的操作,在查询一条记录是否存在时使用如下的代码

  1. public static int seleSQL(string sql)
  2.     {       
  3.         SqlConnection con = createCon();
  4.         con.Open();
  5.         SqlCommand com = new SqlCommand(sql, con);
  6.         
  7.         try
  8.         {
  9.             return System.Convert.ToInt32(com.ExecuteScalar());
  10.             con.Close();
  11.         }
  12.         catch (Exception e)
  13.         {
  14.             con.Close();
  15.             return 0;
  16.         }
  17.        
  18.     }
  19. com.ExecuteScalar()方法返回的是记录的第一行第一列,通过强制转换成int型,如果不存在这条记录,则返回值0;
  20.  if (dataOperate.seleSQL(sql) !=0)//有该记录
            {
                SqlDataReader getrow = dataOperate.getRow(sql);//调用dataOperate.getRow()方法
                getrow.Read();
  21.         }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
public partial class Borrow : System.Web.UI.Page { SqlCommand mycmd = new SqlCommand(); SqlConnection myconn = new SqlConnection(); string mystr = "Data Source=.\\SQLEXPRESS;Initial Catalog=db_tsrj;Integrated Security=True"; static int isSum = 0; protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { bindReaderInfo(); } public void bindReaderInfo() { string mysql; myconn.ConnectionString = mystr; myconn.Open(); string readerBarCode = TextBox1.Text; mysql = "select * from tb_readerInfo, tb_readerType where tb_readerInfo.readerBarCode='" + readerBarCode + "' and tb_readerInfo.readerType = tb_readerType.id"; mycmd.CommandText = mysql; mycmd.Connection = myconn; SqlDataReader myreader = mycmd.ExecuteReader(); myreader.Read(); Label1.Text = myreader["readerName"].ToString(); Label2.Text = myreader["sex"].ToString(); Label3.Text = myreader["type"].ToString(); Label4.Text = myreader["certificateType"].ToString(); Label5.Text = myreader["certificate"].ToString(); int borrowNum = Convert.ToInt32(myreader["num"]); //获取可借图书总数 string selSql = "select count(*) from tb_bookBorrow where readerBarCode='" + readerBarCode + "' and isReturn ='0'"; int alreadyNum = dataOperate.seleSQL(selSql); //获取图书已借数 Label6.Text = Convert.ToString(borrowNum - alreadyNum); //显示可以借阅数 myconn.Close(); isSum = 1; } protected void Button2_Click(object sender, EventArgs e) { if (isSum >0) { if (Convert.ToInt32(Label6.Text.Trim()) > 0) //判断读者是否还可以借书 { if (TextBox2.Text.Trim() != "") //判断图书条形码是否为空 { myconn.ConnectionString = mystr; myconn.Open(); string bookBarCode = TextBox2.Text; string sql = "select bookName as 图书名称, bookType as 图书类型, bookConcern as 出版社, author as 作者, price as 定价 from tb_bookInfo where bookBarCode='" + bookBarCode + "'"; DataSet ds; SqlDataAdapter sda = new SqlDataAdapter(sql, myconn); ds = new DataSet(); sda.Fill(ds, "tb_bookInfo"); GridView1.DataSource = ds.Tables["tb_bookInfo"].DefaultView; GridView1.DataBind(); myconn.Close(); } else { GridView1.DataSource = null; Label7.Text = "图书条形码不能为空!"; } } else { GridView1.DataSource = null; Label7.Text = "借阅数量已满!不可以再借阅"; } } else { GridView1.DataSource = null; Label7.Text = "请先输入正确的读者条形码!"; } } protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { //设置图书类型 string bookType = e.Row.Cells[1].Text.ToString(); //获取图书类型编号 //创建SQL语句在图书类型表中查询符合图书类型编号条件的记录 string typeSql = "select * from tb_bookType where TypeID=" + bookType; SqlDataReader typeSdr = dataOperate.getRow(typeSql); typeSdr.Read(); //读取一条记录 e.Row.Cells[1].Text = typeSdr["typeName"].ToString(); //显示图书类型 e.Row.Cells[5].Text = typeSdr["borrowDay"].ToString(); //显示图书可借天数 } } protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e) { myconn.ConnectionString = mystr; myconn.Open(); //获取选中图书条形码 string bookBarCode = GridView1.DataKeys[e.NewSelectedIndex].Values.ToString(); //创建SQL语句使用内联接连接条件为图书类型编号,查询条件为符合图书条形码的记录 string sql = "select * from tb_bookInfo as a inner join tb_bookType as b on a.bookType=typeID where a.bookBarCode='" + bookBarCode + "'"; mycmd.CommandText = sql; mycmd.Connection = myconn; SqlDataReader myreader = mycmd.ExecuteReader(); myreader.Read(); //读取一条记录 int borrowDay = Convert.ToInt32(myreader["borrowDay"]); //获取借阅天数 string bookName = myreader["bookName"].ToString(); //获取图书名称 string borrowTime = DateTime.Now.ToString(); //获取借阅日期 string readerBarCode = TextBox1.Text;    //获取读者条形码 string returnTime = DateTime.Now.Date.AddDays(borrowDay).ToShortDateString(); //获取应还日期 string readerName = Label1.Text;                       //获取读者姓名 //添加借阅信息 string addSql = "insert into tb_bookBorrow values('" + bookBarCode + "','" + bookName + "','" + borrowTime + "','" + returnTime + "','" + readerBarCode + "','" + readerName + "','False')"; mycmd.CommandText = addSql; mycmd.Connection = myconn; } }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值