小弟菜一枚,求教执行带返回值的查询存储过程(在线等)

807254150 2014-04-19 03:19:27


如图,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();
}

...全文
96 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhang_hao_zi 2014-04-20
  • 打赏
  • 举报
回复
if (dt = null) return; 应为 if (dt == null) { conn.Close(); return; }
zhang_hao_zi 2014-04-20
  • 打赏
  • 举报
回复
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"); using (SqlDataAdapter sqlDA = new SqlDataAdapter(cmd)) { sqlDA.FillLoadOption = LoadOption.OverwriteChanges; sqlDA.Fill(ds, "o"); DataTable dt = ds.Tables["o"]; if (dt = null) return; 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(); }
煜宸0088 2014-04-19
  • 打赏
  • 举报
回复
这太长了…… 你调一下看能执行到哪?

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧