汗颜,最简单的存储过程搞不定,请兄弟们帮忙(内附源码)

cc99 2006-07-08 12:24:02
、存储过程
create proc p_string
@user nvarchar(20),
@pass nvarchar(20)
as
select top 1 uid,purview from account where accpas=@pass and accname=@user
go

二、数据库操作函数
public static DataTable dataTable(string procName,SqlParameter[] coll)
{
SqlDataAdapter da=new SqlDataAdapter();
DataTable datatable=new DataTable();
DataTable dt=new DataTable();
try
{
openConnection();
comm.CommandType=CommandType.StoredProcedure ;
comm.CommandText =procName;

for(int i=0;i<coll.Length;i++)
{
comm.Parameters .Add(coll[i]);
}
da.SelectCommand=comm;
da.Fill(datatable);
dt=datatable;
}
catch(Exception e)
{
throw new Exception(e.Message);
}
finally
{
comm.Parameters.Clear();
closeConnection();
}
return dt;
}


三、调用数据库操作函数

System.Data.SqlClient.SqlParameter[] p=new SqlParameter[2];

p[0]=new SqlParameter();
p[0].ParameterName="@user";
p[0].Value=this.TxtName.Text;

p[1]=new SqlParameter();
p[1].ParameterName="@pass";
p[1].Value=this.TxtPassword.Text;
//下面调用数据库类的函数
this.DataGrid1.DataSource=DataClass.dataTable("p_string",p);
this.DataGrid1.DataBind();
为什么DataGrid1上只显示数据库的字段名?郁闷啊!
...全文
123 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cry_Out 2006-07-08
  • 打赏
  • 举报
回复
几个方法可以调试一下,你启用调试。看一个dataset中tables[0]的记录数。对果是大于0的话,那就是显示页面中设置有问题,如果记录数==0,那么就是其它地方有问题,然后再查查看吧!

ps:
在这句中设置一个断点,然后查一下dataset中的记录情况!
this.DataGrid1.DataSource=DataClass.dataTable("p_string",p);
cc99 2006-07-08
  • 打赏
  • 举报
回复
cc99 2006-07-08
  • 打赏
  • 举报
回复
在查询分析器里,是正常的。可以返回一个数据表。
活靶子哥哥 2006-07-08
  • 打赏
  • 举报
回复
直接在查询分析器内运行存储过程 看看有返回么

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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