我还是一个初学者,我要做一些'插入',我想要'Server, data, User, Pass"输入信息"文本框"查询所使用的SQL。请允许我相应地插入。我如何连接链接链"文本框"下面呢?
Source=" + Server.Text + "
不是这样的
namespace SQL_ParametreTest1
{
public partial class Form1: Form
{
public Form1()
{
InitializeComponent();
}
string connectionString;
SqlConnection cnn;
connectionString = @ "Data Source=" + Server.Text + ";Initial Catalog=" + Data.Text + ";User ID=" + User.Text + ";Password=" + Pass.Text + "";
cnn = new SqlConnection(connectionString);
}
}
太早了。用户还没有机会填写这些文本框。
更糟糕的是,cnn
和connectionString
被归类为"派生实例字段",这意味着它们在构造函数被调用1之前被初始化,这反过来意味着InitializeComponent()
还没有被调用,TextBox变量仍然是null
。
解决方案是等到用户想要执行操作的时候,在之后,他们已经有机会实际将数据放入文本框。
此外,试图通过应用程序或表单2重用SqlConnection
对象是很差的做法。如果您为每个查询创建一个新的连接对象,然后立即处理每个连接,通常使用using
块,那么它真的会执行得更好。
<子>1。https://www.csharp411.com/c-object-initialization/
2。https://softwareengineering.stackexchange.com/a/398790/8057子>