行 141: int Score = score;
行 142: DataSet ds = insertScore.insertscore(int.Parse(UserID),PaperID,Score);
行 143: DataTable dt = ds.Tables[0];
行 144: if (dt.Rows.Count>0)
调用插入方法,并且插入成功
行 142: DataSet ds = insertScore.insertscore(int.Parse(UserID),PaperID,Score);
行 143: DataTable dt = ds.Tables[0];
行 144: if (dt.Rows.Count>0)
调用插入方法,并且插入成功
行 142: DataSet ds = insertScore.insertscore(int.Parse(UserID),PaperID,Score);
行 143: DataTable dt = ds.Tables[0];
行 144: if (dt.Rows.Count>0) 调用插入方法,并且插入成功
是插入了 但你返回的有数据吗?自己检查下
这个函数是来获取数据集的吗?如果是那就看你的语句了,否则利用IDE进行变量监视ds
public DataSet insertscore(int userid,int paperid,int score)
DataSet ds = insertScore.insertscore(int.Parse(UserID),PaperID,Score);
DataTable dt = ds.Tables[0];
if (dt.Rows.Count>0)
错误
上面的插入方法,没有给ds中填充table
然后你用tables[0]就报那个错误把插入的方法贴出来看看
{
Exercise exer = new Exercise();
SqlConnection conn=exer.getcon();
conn.Open();
SqlCommand cmd=new SqlCommand("insertscore",conn);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter paramuseid = new SqlParameter("@userid", SqlDbType.Int);
paramuseid.Value = userid;
cmd.Parameters.Add(paramuseid);
SqlParameter parampaperid = new SqlParameter("@paper_ID", SqlDbType.Int);
parampaperid.Value = paperid;
cmd.Parameters.Add(parampaperid);
SqlParameter paramscore = new SqlParameter("@score", SqlDbType.Int);
paramscore.Value = score;
cmd.Parameters.Add(paramscore); DataSet ds = new DataSet();
SqlDataAdapter ada = new SqlDataAdapter(cmd);
ada.Fill(ds);
conn.Close(); return ds;
}您看看
DataSet ds = insertScore.insertscore(int.Parse(UserID),PaperID,Score);
if(ds.Tables.Count > 0)
{
DataTable dt = ds.Tables[0];
if (dt.Rows.Count>0) ;
}
判断下if (ds!=null)
{}
你肯定要加这种逻辑的
只是这个逻辑不能解决你这个问题
你的问题要跟踪调试了把你存储过程copy出来看看
(@userid int,@paper_ID int,@score int)
AS
begin transaction
insert score
(userid ,paper_ID,score)
values
(@userid,@paper_ID,@score)
Commit
GO
这样返回的是执行影响的行数成功为1,不成功为0,你要想获取数据集后面要加select * from score
然后你在代码里面fill才可以填充数据集,ds里面才会有数据
(@userid int,@paper_ID int,@score int)
AS
begin transaction
insert score
(userid ,paper_ID,score)
values
(@userid,@paper_ID,@score) ;
select * from score
Commit
GO