Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何读取以前的记录C#应用程序?如何解决DBNull错误?_C#_Sql - Fatal编程技术网

如何读取以前的记录C#应用程序?如何解决DBNull错误?

如何读取以前的记录C#应用程序?如何解决DBNull错误?,c#,sql,C#,Sql,我需要帮助。 我试图通过表中的记录求解一个方程,因此我不知道如何使用表中每行的值 表格图像: 所以我需要计算平均值,当项目为y时,(余额=以前的余额-y的数量),(价格=X的平均值,平均值=X的平均值) 当项目为X时,(余额=先前余额+数量),(平均值=(先前余额*先前平均值)+(价格*数量)/余额 ` ` 有什么提示或建议吗 谢谢:)在强制转换之前检查DBNull.Value(表示数据库中不存在的值): if( row[8] != DBNull.Value && row[6]

我需要帮助。 我试图通过表中的记录求解一个方程,因此我不知道如何使用表中每行的值

表格图像:

所以我需要计算平均值,当项目为y时,(余额=以前的余额-y的数量),(价格=X的平均值,平均值=X的平均值)

当项目为X时,(余额=先前余额+数量),(平均值=(先前余额*先前平均值)+(价格*数量)/余额

`

` 有什么提示或建议吗


谢谢:)

在强制转换之前检查
DBNull.Value
(表示数据库中不存在的值):

if( row[8] != DBNull.Value && row[6] != DBNull.Value )
     int ybalance = Convert.ToInt32(row[8]) - Convert.ToInt32(row[6]);

要理解null和DBNull之间的区别,请阅读您需要使用
int.TryParse()
的公认答案。如果值为
DBNull.value
,则返回默认整数值零

试试这个:

int row6;
int rows8;

int.TryParse(row[6],out row6);
int.TryParse(row[8],out row8);

int ybalance = row8 - row6;
int xbalance = row8 + row6;

我的意思是,问题是为什么我会得到DBNull逻辑错误?错误:“对象不能从DBNull转换为其他类型。”因为数据库中的某个地方有null值,您正试图转换为其他类型。检查发生了什么线路异常,并找出在该线路上使用了来自DB的哪些数据。感谢您的回复。但是,它不希望继续计算余额和“if(row[7]==Null);”,因为我将断点设置为“da.Fill(ds);”。它只是一直在数第[6]行和第[8]行。我想知道你是怎么处理的
double avgcost=Convert.ToDouble(第[9]行)
您的行[9]是DBNull,那么如果您发现它是DBNull,您想要设置什么值?
int row6;
int rows8;

int.TryParse(row[6],out row6);
int.TryParse(row[8],out row8);

int ybalance = row8 - row6;
int xbalance = row8 + row6;