我有一个MyClassFile.cs文件,如下所示:
public class MyClass1
{
public static DataTable ReadData(string Connection, string Command, Dictionary Parameters)
{
//ADO.NET stuff here to .Fill() the DataTable Below
return dtTable;
}
public static void WriteData(string Connection, string Command, Dictionary Parameters)
{
//ADO.NET stuff to write to DB
}
}
我在我的Default.aspx.cs中使用它:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
var Parameters = new Dictionary<string, object>
{
{ "?Parameter1", TextBox1.Text },
{ "?Parameter2", TextBox2.Text }
};
DataTable dtTable = MyClass1.ReadData(Connection, Command, Parameters);
ListView1.DataSource = dtTable;
ListView1.DataBind();
}
}
这是一个网站。我是否会遇到此代码的问题,特别是因为ReadData()是公共静态的?如果有很多用户同时使用它会怎么样?
我的目标是拥有一个可重复使用的“.ReadData(x,y,z)”和“.WriteData(x,y,z)”
答案 0 :(得分:4)
看起来这些方法没有任何共享状态 - 它们没有使用任何静态变量 - 所以你应该没问题。
我个人更喜欢将数据层注入表示层(或者在其间有另一层)以使测试更容易 - 静态方法通常是测试的敌人 - 但这是一个稍微不同的事情。
答案 1 :(得分:1)
静态方法本质上是线程安全的,只要它们不访问由应用程序的其他部分共享的对象。因此,在ReadData / WriteData方法中,如果您只是接受参数,创建数据库连接,执行语句并返回一些内容,那么您应该没问题。