求两个时间段的时间差:
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是默认的,具体我也没深究啊..