私はボタンを押すと、SQLサーバデータベースにSQLテーブルを生成するC#プログラムを作成しています。テーブルが正常に作成されていれば、プログラムの大きなテキストボックスにメッセージが表示されます。そうしないと、テキストボックスの画面にメッセージエラーが表示されます。c# - SQLクエリが作成されている場合、テキストボックスにメッセージを表示します。
これまでのところ、すべてが期待通りに機能しますが、何回ボタンを押しても、同じ表示メッセージ(テーブルが作成されています)が画面にポップされます。 私のデータベースにテーブルがまだ存在しない場合にのみ、メッセージが表示されます(正常に)。テーブルがすでに存在する場合は、画面にエラーメッセージが表示されます。私はwhileステートメントを使用していると思っていますが、それがどのように解決するのか理解できませんでした。ここで
は私のコードは次のとおりです。
private void btnCreateTables_Click(object sender, EventArgs e)
{
string query = "IF OBJECT_ID('dbo.AuditCardTypeBenefit_TEST','U') IS NULL ";
query += "BEGIN ";
query += "CREATE TABLE[dbo].[AuditCardTypeBenefit_TEST](";
query += "[AuditID] [decimal](18, 0) IDENTITY(1,1) NOT NULL, ";
query += "[AuditType] [char](5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, ";
query += "[CardTypeBenefitID] [decimal](18, 0) NOT NULL, ";
query += "[EventCode] [varchar](8) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, ";
query += "[CardTypeGroupID] [varchar](5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, ";
query += "[AgeFrom] [int] NULL, ";
query += "[AgeTo] [int] NULL, ";
query += "[Gender] [char](1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, ";
query += "[CreateBy] [nvarchar](128) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, ";
query += "[CreateDate] [datetime] NOT NULL, ";
query += "[Status] [char](2) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, ";
query += "[CancelReason] [varchar](250) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, ";
query += "[LastChangeBy] [nvarchar](128) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, ";
query += "[LastChangeDate] [datetime] NOT NULL, ";
query += "[RecordVersion] [timestamp] NOT NULL ";
query += ") ON [PRIMARY] ";
query += "END ";
string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
try
{
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand(query))
{
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
Display("AuditCardTypeBenefit_Test table has been created successfully");
con.Close();
}
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
textBox1.AppendText(string.Format("{0}", Environment.NewLine));
textBox1.AppendText(string.Format("{0} MainPage_Load() exception - {1}{2}", _strThisAppName, ex.Message, Environment.NewLine));
Debug.WriteLine(string.Format("{0} MainPage_Load() exception - {1}", _strThisAppName, ex.Message));
}
注:表示方法は、画面にメッセージを表示する責任があります。
*ボタンを何度何回押しても、同じメッセージが画面にポップされます。*同じメッセージはどういう意味ですか?どのメッセージ? – CodingYoshi
while文ではどうしますか? – astidham2003
メッセージ「AuditCardTypeBenefit_Testテーブルが正常に作成されました」 –