如图,listView 显示的数据里是有两个表联合查询的,科目表和题干表,我想要单击的时候查询一条语句,把值赋给上面的文本框,这是后有返回值吧,我是根据id编号列,作为where条件查询的,但是我界面的代码一直都是实现不了赋值,请高手给见评。谢谢
存储过程代码:
create proc p_selectTimu2
@id int
as
select OneOption.Id,Timu,An,Bn,Cn,Dn,QAnswer,score,academics.academicsName,[type]
from OneOption join academics
on academics.academicsId=OneOption.academicsId
where OneOption.Id= @id
界面单击listView选中行的代码:
try
{
cmd = new SqlCommand("p_selectTimu2", conn);
cmd.CommandType = CommandType.StoredProcedure;//执行存储过程
SqlParameter Id = new SqlParameter("@id", SqlDbType.Int);
Id.Value = selectItem; //给封装后的值赋值
cmd.Parameters.Clear(); //清空原有的参数集合
cmd.Parameters.Add(Id).Direction = ParameterDirection.ReturnValue; ;//将参数传递到数据库中去,返回值
conn.Open();
cmd.ExecuteNonQuery(); //执行一遍,
reader = cmd.ExecuteReader(); //再执行一遍
//cboSubobject.Text = cmd.Parameters["@id"].Value.ToString();
DataSet ds = new DataSet();
da.Fill(ds, "o");
DataTable dt = ds.Tables["o"];
foreach (DataRow row in dt.Rows)
{
txTimu.Text = row["Timu"] + "";
txtA.Text = row["An"] + "";
txtB.Text = row["Bn"] + "";
txtC.Text = row["Cn"] + "";
txtD.Text = row["Dn"] + "";
cboType.Text = row["type"] + "";
cboFen.Text = row["score"] + "";
cboSubobject.Text = row["academicsName"] + "";
}
}
catch (Exception) { }
finally
{
conn.Close();
}