【发布时间】:2012-06-13 19:21:15
【问题描述】:
我的函数导致很多异常,因此性能不是那么好。
您能否建议在我返回字符串之前如何修复函数并验证数据?我尝试查看表的数量是否超过 0,但并非总是如此。
public String getString(String sql)
{
DataSet ds = new DataSet();
string connstring = String.Format("Server={0};Port={1}; User Id={2};Password={3};Database={4};", tbHost, tbPort, tbUser, tbPass, tbDataBaseName);
NpgsqlConnection conn = new NpgsqlConnection(connstring);
try
{
conn.Open();
NpgsqlDataAdapter da = new NpgsqlDataAdapter(sql, conn);
ds.Reset();
da.Fill(ds);
conn.Close();
return ds.Tables.Count == 0 ? "0" : ds.Tables[0].Rows[0][0].ToString();
}
catch (Exception msg)
{
if (conn.State.ToString() == "Open")
{
conn.Close();
}
return "0";
}
}
【问题讨论】:
-
抛出了什么异常?如果遇到异常,调用方法应该怎么做?
-
不要在 try 块之外分配变量值并将 .Close() 移动到 finally 块
标签: c# sql winforms postgresql npgsql