2011-02-23 73 views
0
Line 51: cmd.Parameters.Add("@bprc", SqlDbType.Int).Value = Convert.ToInt32(TextBox4.Text); 
Line 52: cmd.Parameters.Add("@bcat", SqlDbType.VarChar, 50).Value = DropDownList1.SelectedValue; 
Line 53: cmd.Parameters.Add("@bimg", SqlDbType.VarChar, 50).Value = fn; 
Line 54: cmd.Parameters.Add("@bdsc", SqlDbType.VarChar, 500).Value = TextBox6.Text; 
Line 55: cmd.ExecuteNonQuery(); 
+1

你能解释你的问题吗? – Adeel 2011-02-23 06:55:47

+0

宣布'fn'在哪里?你可以发布该代码吗? – decyclone 2011-02-23 06:58:50

回答

2

看来,您已声明变量fn但未初始化它。调试,无论你真的将值设置为fn,这将有所帮助。

1

如果您声明了一个变量,但不会将其分配给任何内容,则会发生这种情况。例如,如果你有以下:

int myInt; 
return Math.Min(0, myInt); 

那么编译器会为您尝试使用myInt报告错误第二行,但是你没有给它的值。

注意,你会得到即使没有被设置在myInt只有1 潜在路径导致此错误,例如:

bool myBool = true; 
int myInt; 
if (myBool) 
{ 
    myInt = 1; 
} 
return Math.Min(0, myInt); 

的解决方案是在之前的一些点初始化fn一些合理的价值第53行,或确保它为所有可能的代码路径设置了一些值:

string fn = null; // (assuming `fn` is a string)