未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。我调试存储过程,没有错误,输入1,3有记录集void list()
{
DataTable dt=html_cartype_6.ReturnCartypeBiaojiao(1,3);
if (dt.Rows.Count>0)//这行错了
{
for(int i=0;i<=dt.Rows.Count-1;i++)
{
Response.Write(dt.Rows[i]["cartype_id"].ToString());
}
} }
方法:ReturnCartypeBiaojiao
public static DataTable ReturnCartypeBiaojiao(int id,int types)
{ SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
SqlDataAdapter cmd=new SqlDataAdapter("sp_newcars_ListbijiaoCartypeId",conn);
cmd.SelectCommand.CommandType = CommandType.StoredProcedure; cmd.SelectCommand.Parameters.Add(new SqlParameter("@id", SqlDbType.Int));
cmd.SelectCommand.Parameters["@id"].Value = id; cmd.SelectCommand.Parameters.Add(new SqlParameter("@types", SqlDbType.Int));
cmd.SelectCommand.Parameters["@types"].Value = types; conn.Open(); DataSet ds = new DataSet();
cmd.Fill(ds, "cartypebiaojiao"); ds.Dispose();
cmd.Dispose();
conn.Close();
return ds.Tables["bj"];
}
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。我调试存储过程,没有错误,输入1,3有记录集void list()
{
DataTable dt=html_cartype_6.ReturnCartypeBiaojiao(1,3);
if (dt.Rows.Count>0)//这行错了
{
for(int i=0;i<=dt.Rows.Count-1;i++)
{
Response.Write(dt.Rows[i]["cartype_id"].ToString());
}
} }
方法:ReturnCartypeBiaojiao
public static DataTable ReturnCartypeBiaojiao(int id,int types)
{ SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
SqlDataAdapter cmd=new SqlDataAdapter("sp_newcars_ListbijiaoCartypeId",conn);
cmd.SelectCommand.CommandType = CommandType.StoredProcedure; cmd.SelectCommand.Parameters.Add(new SqlParameter("@id", SqlDbType.Int));
cmd.SelectCommand.Parameters["@id"].Value = id; cmd.SelectCommand.Parameters.Add(new SqlParameter("@types", SqlDbType.Int));
cmd.SelectCommand.Parameters["@types"].Value = types; conn.Open(); DataSet ds = new DataSet();
cmd.Fill(ds, "cartypebiaojiao"); ds.Dispose();
cmd.Dispose();
conn.Close();
return ds.Tables["bj"];
}
@id int,
@types int --@types=2同价位车型比较 @types=3同排量车型比较
ASdeclare @cartype int --当前车系类型
declare @inout int --当前车型是否国产,进口 0国产,1进口
declare @price nvarchar(60) --本车价格
declare @ccv_paiqiliang nvarchar(50) --本车排气量 select @cartype=s.CarSeriesType,@inout=s.inout,@price=cast(round(c.etprice,0) as nvarchar(60)),@ccv_paiqiliang=c.ccv_paiqiliang from tbl_car_info As i,tbl_Car_info2 As c ,tbl_car_series s where i.carseriesid=s.carseriesid and i.cartype_id=c.cartype_id and i.isdelete=0 and i.cartype_id=@id
--select @cartype=s.CarSeriesType,@inout=s.inout,@price=c.etprice,@ccv_paiqiliang=c.ccv_paiqiliang from tbl_car_info As i,tbl_Car_info2 As c ,tbl_car_series s where i.carseriesid=s.carseriesid and i.cartype_id=c.cartype_id and i.isdelete=0 and i.cartype_id=@id if (@types=2)
begin
--if (cast(@price As float)>0.5)
--begin
select i.cartype_id,i.cartypename from tbl_car_info i,tbl_car_info2 As c ,tbl_car_series s where i.carseriesid=s.carseriesid and i.cartype_id=c.cartype_id and i.isdelete=0 and s.inout=@inout and s.CarSeriesType=@cartype and i.cartype_id<>@id and cast(c.etprice AS nvarchar(60))<>'' and cast(c.etprice AS nvarchar(60))<>'0' and cast(round(c.etprice,0) As nvarchar(60))=@price order by i.carseriesid
--end
end
else
begin
--if (cast(@price As float)>0.5)
--begin
select i.cartype_id,i.cartypename from tbl_car_info i,tbl_car_info2 As c ,tbl_car_series As m where i.carseriesid=m.carseriesid and i.cartype_id=c.cartype_id and i.isdelete=0 and m.inout=@inout and m.CarSeriesType=@cartype and i.cartype_id<>@id and c.ccv_paiqiliang<>'' and c.ccv_paiqiliang<>'0' and c.ccv_paiqiliang is not null and c.ccv_paiqiliang=@ccv_paiqiliang order by i.carseriesid
--end
endGO
return ds.Tables["bj"];
的名称不一样?
public static DataTable ReturnCartypeBiaojiao(int id,int types)
{ SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
SqlDataAdapter cmd=new SqlDataAdapter("sp_newcars_ListbijiaoCartypeId",conn);
cmd.SelectCommand.CommandType = CommandType.StoredProcedure; cmd.SelectCommand.Parameters.Add(new SqlParameter("@id", SqlDbType.Int));
cmd.SelectCommand.Parameters["@id"].Value = id; cmd.SelectCommand.Parameters.Add(new SqlParameter("@types", SqlDbType.Int));
cmd.SelectCommand.Parameters["@types"].Value = types; conn.Open(); DataSet ds = new DataSet();
cmd.Fill(ds, "cartypebiaojiao"); ds.Dispose();
cmd.Dispose();
conn.Close();
return ds.Tables["bj"];
}---------------------------------------------------------------------
錯誤在ds.Dispose()上面
此時不把ds回收
把ds.Dispose()這句代碼拿掉試一下
你的"bj"從何而來,如果只返回的是一個表的話請用
return ds.Tables[0]
dataset.Tables.Add("aaa");
adapter.Fill(dataset, "AAA");