• 数据库小技巧


    求两个时间段的时间差:

    DateTime starttime = DateTime.Now;

    DateTime endtime
    = DateTime.Now;

    差值为:          

    TimeSpan t = endtime - starttime;

    获取表中的字段:             

    select name from syscolumns where id=object_id('Student')

    有选择的更新记录:

               

    adapter.Update(ds.Tables[0].Select(null,null,DataViewRowState.Added));

    在对 一张表进行操作时,有时候可能不会要求全部更新,或要求只更新添加的记录或删除的记录,这时候就可以用这条语句

    Example:

    //定义连个对象
    DataSet ds = null;
    SqlDataAdapter adapter
    = null;

    //这是一般的查询方法
    SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=Test;Integrated Security=True");
    con.Open();
    SqlCommand cmd
    = new SqlCommand("select * from Student where ID=406302", con);
    adapter
    = new SqlDataAdapter(cmd);
    ds
    = new DataSet();
    adapter.Fill(ds);
    dataGridView1.DataSource
    = ds.Tables[0];
    //经过一段操作,我分别对DataGridView进行了增删改查的操作,我现在只更新添加记录的操作,使得其他的操作都不更新到数据库
    //更新按钮
    SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
    //有选择的更新
    adapter.Update(ds.Tables[0].Select(null,null,DataViewRowState.Deleted));

    这样就可以啦,不信你试试......


    进行下一问题..

    在写存储过程的时候免不了有许多参数,在C#调用的时候,要为参数赋值的话,你就必须要知道这些参数,这就浪费了很多时间而且有时候参数写错的话就会出问题
    现在进行的是自动发现SP的参数,这个我也是"研究"了一下SqlHelper后才发现的...

    Example:

     

    sqlcommand cmd=new sqlcommand("AddUser",con);
    cmd.CommandType=commandType.StoredProcedure;
    //瞪大眼睛
    SqlCommandBuilder.DeriveParameters(cmd);
    sqlparameter paras
    =new sqlparameter[cmd.parameters.count];
    cmd.Parameters.CopyTo(paras,
    0)
    //这样参数就会被 读到paras数组中去了

     

    数组中的第一个元素是Return_value是默认的,具体我也没深究啊..

  • 相关阅读:
    oracle_使用udev绑定磁盘方法
    Android studio实现简单的CRUD
    Android Studio无法打印Logout日志
    迭代法求平方根
    实现Hibernate框架的CRUD
    Android Studio连接真机调试
    Java项目学习笔记(一)
    绝对路径${pageContext.request.contextPath}
    request、response的setCharacterEncoding与response的setContentType
    java中的@Override标签
  • 原文地址:https://www.cnblogs.com/wangshuai/p/1635684.html
Copyright © 2020-2023  润新知