みなさん、こんにちは!
かなり大きな問題に遭遇したのはこれで 2 回目ですが、overflow のコミュニティが助けに来てくれることを願っています!
さて、これを開始するには、Microsoft データベース (Access 2003) に接続するこのプログラムがあります。デバッグしている間、すべて正常に動作します。正常にアクセスでき、データを正しく追加できます。
int val = 0;
int ok = 1;
do
{
try
{
OleDbCommand cmd = new OleDbCommand();
{
cmd.Connection = Variables.con;
cmd.CommandText = "Select * from users";
using (OleDbDataReader dr = cmd.ExecuteReader())
{
while (dr.Read())
{
if (dr["us_name"].ToString() == usnT.Text)
{
ok = 0;
break;
}
}
}
}
if (ok == 0)
{
MessageBox.Show("Username already taken");
break;
}
if (usnT.Text != "" && pswdT.Text != "" && ok == 1)
{
pswdT.Text = pswdT.Text.ToLower();
string vsql = string.Format("insert into users values({0},'{1}',{2},'{3}','{4}')", id, usnT.Text, val, val, pswdT.Text);
OleDbCommand vcom = new OleDbCommand(vsql, Variables.con);
vcom.ExecuteNonQuery();
MessageBox.Show("success");
vcom.Dispose();
}
break;
}
catch
{
id++;
}
} while (true);
ただし、InstallShield で展開した後、アプリは上記のコードを除いて完全に正常に動作します。データベースに新しいアカウントを追加しようとすると、クラッシュします。
お時間をいただきありがとうございます。この問題のトラブルシューティングにご協力いただければ幸いです。個人的にはかなり難しいと思いますが、まだまだ初心者です… ありがとうございます!