我想将新的ID机器(不是自动的(,新机器的名称放入列表中,然后选择此类机器所属的区域(Bereich(。 我尝试将 ID 号(如在数据查询中(更改为字符串 ID,以获取 INSERT INTO 查询中的区域名称。但我不知道为什么 VS 显示我没有打开连接(执行非查询需要一个打开且可用的连接。连接的当前状态为关闭(...如果有人能帮助我,那就太好了。
public void bttnSpeichern_Click_1(System.Object sender, EventArgs e)
{
Module.con.Open();
int geraetid = (int)(Conversion.Val(lblGeraetid.Text));
int bereichid = (int)(Conversion.Val(lblBereichID.Text));
if (lblGeraetid.Text == "MaschineID" || lblGeraetid.Text == null || txtGeraetName.Text == null || lblGeraetid.Text == "BereichID" || lblBereichID.Text == null)
{
Interaction.MsgBox("Bitte füllen Sie die Faldern aus", Constants.vbInformation, "Hinweis");
}
else
{
string b = System.Convert.ToString(Interaction.MsgBox("Möchten Sie die Eingaben bestätigen?", (int)Constants.vbQuestion + Constants.vbYesNo, "Anlegen"));
if ( b == Constants.vbYes.ToString())
{
Module.con.Open();
OleDbCommand geraete_anlegen = new OleDbCommand("INSERT INTO tblMaschine(MaschineID,Maschine,BereichID) VALUES ('"+
lblGeraetid.Text + "','"+
txtGeraetName.Text + "','" +
lblBereichID.Text + "','", Module.con);
geraete_anlegen.ExecuteNonQuery();
Interaction.MsgBox("Gerät wurde erfolgreich angelegt!", Constants.vbInformation, "Neues Gerät");
//clear_text();
Module.con.Close();
display_geraete();
}
}
}
第一个问题我看到你打开了一个连接两次。我注释掉了一个,并在旁边放了一条评论。
我不确定模块包含什么,所以我为您可以从中获取的问题找到一个独立的解决方案。
我将连接放在使用子句中,这始终是一种很好的做法,因此您不必担心关闭它。
public void bttnSpeichern_Click_1(System.Object sender, EventArgs e)
{
//Module.con.Open(); < -- Not needed it is done below
int geraetid = (int)(Conversion.Val(lblGeraetid.Text));
int bereichid = (int)(Conversion.Val(lblBereichID.Text));
if (lblGeraetid.Text == "MaschineID" || lblGeraetid.Text == null || txtGeraetName.Text == null || lblGeraetid.Text == "BereichID" || lblBereichID.Text == null)
{
Interaction.MsgBox("Bitte füllen Sie die Faldern aus", Constants.vbInformation, "Hinweis");
}
else
{
string b = System.Convert.ToString(Interaction.MsgBox("Möchten Sie die Eingaben bestätigen?", (int)Constants.vbQuestion + Constants.vbYesNo, "Anlegen"));
if ( b == Constants.vbYes.ToString())
{
string geraete_anlegen = new OleDbCommand("INSERT INTO tblMaschine(MaschineID,Maschine,BereichID) VALUES ('"+
lblGeraetid.Text + "','"+
txtGeraetName.Text + "','" +
lblBereichID.Text + "','", Module.con);
using (OleDbConnection connection = new OleDbConnection(connectionString)) //<-You need to supply a connection string
{
connection.Open();
OleDbCommand command = new OleDbCommand(geraete_anlegen, connection);
command.ExecuteNonQuery();
}
Interaction.MsgBox("Gerät wurde erfolgreich angelegt!", Constants.vbInformation, "Neues Gerät");
//clear_text();
display_geraete();
}
}
}