private void look(string sql)
{
//SqlParameter para1 = new SqlParameter("@time", SqlDbType.DateTime);
//para1.Value = dateTimePicker2.Value;
SqlDataAdapter da1 = new SqlDataAdapter();
DataTable dt2 = new DataTable();
da1 = new SqlDataAdapter(sql, conn);
dt2.Clear();
da1.Fill(dt2);
if (sql == "Lookzgongsi1" || sql == "Lookzgongsi2" || sql == "Lookzgongsi3")
dt2.Columns.RemoveAt(0);
dt2.Columns.Add("序号", typeof(Int32));
//把序号放到第一位
dt2.Columns["序号"].SetOrdinal(0);
int i = 0;
foreach (DataRow dr in dt2.Rows)
{
dt2.Rows[i][0] = i + 1;
i++;
}
dataGridView1.DataSource = dt2;
dt1 = dt2;
}
这个方法,如果调用的时候输入的存储过程是Lookzgongsi1或者Lookzgongsi2或者Lookzgongsi3的时候,就添加多一个列用来显示序号.....而其中的Lookzgongsi2和Lookzgongsi3里是有一个@time变量,调用Lookzgongsi2时,@time=dateTimePicker2.Value....调用Lookzgongsi3时,@time=dateTimePicker3.Value请问应该怎么写呢?
用sqlcommand关联adapter
给sqlparamter参数,添加到cmd中,
不管是不是存储过程我想参数的传递都是类似的。新手不确定,哥们断言了别生气啊!
da.InsertCommand=new SqlCommand(inscmd,conn);
//声明参数并指定数据库的列和版本
sp=da.InsertCommand.Parameters.Add("@UserName",SqlDbType.VarChar);
sp.SourceColumn="UserName";
sp.SourceVersion=DataRowVersion.Current; sp=da.InsertCommand.Parameters.Add("@UserPwd",SqlDbType.VarChar);
sp.SourceColumn="UserPwd";
sp.SourceVersion=DataRowVersion.Current; sp=da.InsertCommand.Parameters.Add("@UserAge",SqlDbType.Int);
sp.SourceColumn="UserAge";
sp.SourceVersion=DataRowVersion.Current; sp=da.InsertCommand.Parameters.Add("@UserType",SqlDbType.VarChar);
sp.SourceColumn="UserType";
sp.SourceVersion=DataRowVersion.Current; if (ds.HasChanges())
{
try
{
da.Update(ds, "UserInfo");
MessageBox.Show("插入记录成功");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}这个?