我有这样的代码
DatabaseConnection.MyExecuteNonQuery(comd);
cmd.CommandText = "select heads,formulla,fields from tbl_empsalstructear where empcode='" + emp.empid + "' order by headid";
OleDbDataReader rdr = DatabaseConnection.MyExecuteReader(cmd);
while (rdr.Read())
{这里我有另一个函数,它返回一个字符串值
string abc=function();然后我使用
string jkl=rdr[0].tostring()它不返回值,并且在行n列中没有数据,但是当我在函数中删除该函数时,它工作正常,并且在该函数中,我有另一个关闭的数据读取器}
发布于 2013-12-05 14:07:41
在尝试访问数据之前,可以尝试使用checking for NULL values。
上面的链接状态;
Call this method to look for null column values before calling the typed get methods (for example, GetByte, GetChar, and so on) to avoid raising an error.
我通常使用SqlDataReader,但下面是我所做的一个示例。注意rdr.IsDBNull调用。对任何允许空值的列执行此操作;
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["myconnstring"].ConnectionString))
using (SqlCommand cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText = SQL_COURSE_COMPONENTS; // Constant to my SQL statement containing a parameter @CourseId
SqlParameter param = new SqlParameter();
param.ParameterName = "@CourseId";
param.Value = CourseId;
cmd.Parameters.Add(param);
using (SqlDataReader rdr = cmd.ExecuteReader())
{
int CODE_ORDINAL = rdr.GetOrdinal("Code");
while (rdr.Read())
{
string code = rdr.IsDBNull(CODE_ORDINAL) ? (string)null : rdr.GetString(CODE_ORDINAL);
// .... Rest of the code here
}
}
}https://stackoverflow.com/questions/20392203
复制相似问题