c# 提示并非所有的代码路径都返回值,这段代码哪不对

static public SqlConnection GetConn() { try { string sql = null; SqlConnForm form = new SqlConnForm(); if (form.radioButtonWin.Checked == true && SqlConnForm.dbname == "") { sql = @"Data Source=" + SqlConnForm.sername + ";Initial Catalog=master;Integrated Security=True"; SqlConnection conn = new SqlConnection(sql); return conn; } if (form.radioButtonWin.Checked == true && SqlConnForm.dbname != "") { sql = @"Data Source=" + SqlConnForm.sername + ";Initial Catalog=" + form.comboBoxDbName.Text + ";Integrated Security=True"; SqlConnection conn = new SqlConnection(sql); return conn; } if (form.radioButtonSQL.Checked == true && SqlConnForm.dbname == "") { sql = @"Data Source=" + SqlConnForm.sername + ";Initial Catalog=master;User ID=" + SqlConnForm.username + "Pwd=" + SqlConnForm.password + ";"; SqlConnection conn = new SqlConnection(sql); return conn; } if (form.radioButtonSQL.Checked == true && SqlConnForm.dbname != "") { sql = @"Data Source=" + SqlConnForm.sername + ";Initial Catalog=" + SqlConnForm.dbname + ";User ID=" + SqlConnForm.username + "Pwd=" + SqlConnForm.password + ";"; SqlConnection conn = new SqlConnection(sql); return conn; } } catch (Exception e) { throw e; }
2026年09月24日 23:42
有2个网友回答
网友(1):

你把return conn放到外面不就行了,还有你最好把sqlconnection弄成全局的
尝试修改成下面的代码,试一下

static public SqlConnection GetConn()
{
try
{
SqlConnection conn=null;
string sql = null;
SqlConnForm form = new SqlConnForm();
if (form.radioButtonWin.Checked == true && SqlConnForm.dbname == "")
{
sql = @"Data Source=" + SqlConnForm.sername + ";Initial Catalog=master;Integrated Security=True";
conn = new SqlConnection(sql);
}
if (form.radioButtonWin.Checked == true && SqlConnForm.dbname != "")
{
sql = @"Data Source=" + SqlConnForm.sername + ";Initial Catalog=" + form.comboBoxDbName.Text + ";Integrated Security=True";
conn = new SqlConnection(sql);
}
if (form.radioButtonSQL.Checked == true && SqlConnForm.dbname == "")
{
sql = @"Data Source=" + SqlConnForm.sername + ";Initial Catalog=master;User ID=" + SqlConnForm.username + "Pwd=" + SqlConnForm.password + ";";
conn = new SqlConnection(sql);
}
if (form.radioButtonSQL.Checked == true && SqlConnForm.dbname != "")
{
sql = @"Data Source=" + SqlConnForm.sername + ";Initial Catalog=" + SqlConnForm.dbname + ";User ID=" + SqlConnForm.username + "Pwd=" + SqlConnForm.password + ";";
conn = new SqlConnection(sql);

}
}
catch (Exception e)
{
throw e;
}
return conn;

网友(2):

catch (Exception e)
{
throw e;
}
这个分支是没有return的,如果try里面有异常,你这个函数就没有返回值了,编译当然不能通过