【发布时间】:2016-06-25 07:50:26
【问题描述】:
存储过程
Create Procedure [dbo].[Sp_User]
(
@Id int=null,
@FullName varchar(50)=null,
@Password varchar(50)=null,
@Address varchar(100)=null,
@Email varchar(50)=null,
@Imgurl varchar(50)=null,
@Activity varchar(50)=null
)
As Begin
if(@Activity='Add')
insert into registration
(FullName,[Password],[Address],Email,Imgurl)
values
(@FullName,@Password,@Address,@Email,@Imgurl)
if(@Activity = 'All')
select top 1 FullName,Email,Password,imgurl from registration order by Id desc
End
在用户 DAL 中
public List<User>All(ActivityMode a)
{
SqlConnection con = ConnectionDAL.SQL();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "Sp_User";
cmd.Parameters.AddWithValue("@activity", a.ToString());
List<User> lst = null;
con.Open();
using (con)
{
SqlDataReader DR = cmd.ExecuteReader();
if (DR.HasRows)
{
lst = new List<User>();
while (DR.Read())
{
User obj = new User();
obj.Id = Convert.ToInt32(DR["Id"]);
obj.FullName = DR["FullName"].ToString();
obj.Email = DR["Email"].ToString();
obj.Password = DR["Password"].ToString();
obj.Address = DR["Address"].ToString();
obj.Imgurl = DR["Imgurl"].ToString();
lst.Add(obj);
}
}
}
return lst;
}
在康洛尔
public ActionResult ViewAllUser()
{
RegisterHandler th = new RegisterHandler();
List<User> lst = new List<User>();
lst = th.All();
return View(lst);
}
我只想显示最后一条记录。
我正在运行项目并收到此错误。
“/”应用程序中的服务器错误。
身份证
描述:执行过程中发生了未处理的异常 当前的网络请求。请查看堆栈跟踪以获取更多信息 有关错误的信息以及它在代码中的来源。
异常详细信息:System.IndexOutOfRangeException:ID
来源错误:
Line 90: { Line 91: User obj = new User(); Line 92: obj.Id = Convert.ToInt32(DR["ID"]); Line 93: obj.FullName = DR["FullName"].ToString(); Line 94: obj.Email = DR["Email"].ToString();
如何解决?请帮帮我。
【问题讨论】:
标签: c# sql asp.net database ado.net