我在公共-v-私有變量和作用域中遇到了一點問題。c#在方法中使用的變量的上下文錯誤
這裏是我的代碼
private void PopulateCaseViewer(string paramField, string paramValue)
{
string strConnection = BuildConnectionString();
SqlConnection linkToDB = new SqlConnection(strConnection);
if (paramField == "load")
{
string sqlStat = "SELECT c.CaseNo, c.Claimant, c.Defendant, c.DOA, c.CaseType, c.CaseManager, c.Occupation, c.DateInstruction " +
"a.IPName, a.IPRegion, l.IPReference " +
"FROM tblCases AS c INNER JOIN tblIPLinks as l ON c.CaseNo = l.CaseNo " +
"JOIN tblIPAddresses AS a ON l.IPID = a.IPID;";
}
using (linkToDB)
using (var adapter = new SqlDataAdapter(sqlStat, linkToDB))
{
var table = new DataTable();
adapter.Fill(table);
dataCaseViewer.DataSource = table;
}
}
的問題是,在該行字符串sqlStat「使用(VAR適配器=新SqlDataAdapter的......)」指出,sqlStat是「不在當前存在語境」。
我的目標是根據傳遞給它的paramField和paramValues在這個方法上添加很多IF語句,以便構建不同的sqlStats來填充依賴於用戶輸入的dataCaseViewer.DataSource。但是如果IF語句中的sqlStat變量不能被SqlDataAdapter中的後續調用看到,那麼我有點卡住了。
任何建議請。
我不想在IF內部的一切,否則我必須重複sqlDataAdapter代碼爲每個IF語句,將在這種方法,並且可能會有一些。 – PJW 2012-01-17 16:12:50
你可以初始化變量。我想這個解決方案比沒有任何工作更好。 – 2012-01-17 16:38:24