为0还是为空?
if(sybReader["field"].ToString() == "0")
{}
if(sybReader["field"] == DBNull.Value)
{}
if(sybReader["field"].ToString() == "0")
{}
if(sybReader["field"] == DBNull.Value)
{}
解决方案 »
- 用VB6做的DLL怎在ASP.NET和ASP中调用?
- 急!关于.NET运行环境的问题!
- treeview check事件加客户端代码以后服务器代码不执行
- iframe页面跳转实现
- 问一个问题!
- 求分页存储过程,要根据2个字段排序的(在csdn上找了半天都是1个字段的)
- 求最新IP数据库及显示真实地址的算法!(公益黄金贴,“爱好种平的”都进来UP):)
- asp里的session问题?
- PB转入ASP.NET学习总结1
- 在一个Web应用程序中ASP.NET程序和ASP程序可以共存吗?如果可以的话,两系统session该如何共享?
- 没有放在具有 runat=server 的窗体里?????????
- 请问这个错误是什么原因?==错误提示:服务器应用程序不可用 ===
if(this.syb.sybReader["char10_1"].ToString()=="0")
都提示如下错误:
***********************************************
No data exists for the row/column.
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidOperationException: No data exists for the row/column.
********************************************
我最初是用 if(this.syb.sybReader.Read()) 也不起作用!!!!!!!!!!!!!我的本意是判断 sybReader 有没有查到符合条件的记录?
请再指点一下, 谢谢!
代码我贴出来:
syb.Reader(select);
if(this.syb.sybReader.Read())
{
table=new DataTable();
syb.AddColumn("日期",table);
syb.AddColumn("出租率",table);
syb.AddColumn("平均温度",table);
syb.AddColumn("水耗",table);
syb.AddColumn("电耗",table);
syb.AddColumn("油耗",table);
syb.AddColumn("气耗",table);
syb.AddColumn("煤耗",table);
syb.AddRow(table);
this.DataGrid1.DataSource=table;
this.DataGrid1.DataBind();
syb.Close();
this.Label2.Visible=false;
this.DataGrid1.Visible=true;
return ;
}
else
{
this.Label2.Text="Sorry!没有符合条件的记录.....";
this.Label2.Visible=true;
this.DataGrid1.Visible=false;
syb.Close();
return ;
}
*************
public void Reader(string str)
{
Open();
sybCommand=new OdbcCommand(str,sybConnection);
sybReader=sybCommand.ExecuteReader();
}
public void AddColumn(string col,DataTable MyTable)
{
myColumn = new DataColumn();
myColumn.ColumnName =col;
myColumn.DataType = System.Type.GetType("System.String");
myColumn.Unique =false;
myColumn.AutoIncrement = false;
myColumn.ReadOnly = false;
MyTable.Columns.Add(myColumn);
}
public void AddRow(DataTable myTable)
{
//Reader(str_sql);
while(sybReader.Read ())
{
dr=myTable.NewRow();
int total=sybReader.FieldCount;
for(int i=0;i<total;i++)
{
dr[i]=sybReader.GetString(i);
}
myTable.Rows.Add(dr);
}
}
while(this.syb.sybReader.Read())
this.DataGrid1.DataSource=table;
this.DataGrid1.DataBind();
syb.Close();
这一部分代码只能显示一个具有表头的空表,因为你没有向表里增加数据
to liuyong_lll(孤醉) 改While 是不对的,因为我下面调用的函数AddRow()已经用了While
to hhzh426(春之风) 我代码没有贴全,是可以的,我已经改好了:
public bool AddRow(DataTable myTable)
{
while(sybReader.Read ())
{
dr=myTable.NewRow();
int total=sybReader.FieldCount;
for(int i=0;i<total;i++)
{
dr[i]=sybReader.GetString(i);
}
myTable.Rows.Add(dr);
}
if(myTable.Rows.Count==0) return false; //
else return true;//这两句新加的,OK了
______________________________________
谢谢各位,My QQ;81623859 , 加我,一起学吧