当我调试我的项目时,我收到此错误:
位置0没有行
返回代码错误(byte [])...
public static Byte[] BaixarArquivo(long codArquivo)
{
Database db = DatabaseFactory.CreateDatabase();
DBCommandWrapper dbCommandWrapper = db.GetStoredProcCommandWrapper("GERREL_ARQUIVO_BAIXAR");
dbCommandWrapper.AddInParameter("@CODARQUIVO" , DbType.Int32 , codArquivo);
>>>> return (byte[]) db.ExecuteDataSet(dbCommandWrapper).Tables[0].Rows[0]["ARQUIVO"];
}
我检查了数据库,发现没有问题。可能会发生什么?
=====
private void Page_Load (object sender, System.EventArgs e)
{
String codigoArquivo = Request.QueryString ["CodArquivo"];
Response.BinaryWrite (BO.Arquivo.BaixarArquivo (int.Parse (codigoArquivo)));
}
答案 0 :(得分:1)
ExecuteDataSet
似乎返回DataSet
,其中包含一个空的表。所以你必须检查从存储过程中没有返回任何行是否正确。
如果可以,请检查Rows.Count
:
var ds = db.ExecuteDataSet(dbCommandWrapper);
if(ds.Tables[0].Rows.Count == 0)
return null;
else
return (byte[]) ds.Tables[0].Rows[0]["ARQUIVO"];
否则你必须修复SP中的sql。