-2

このコードの何が問題なのですか?私が実際に達成しようとしているのは、データベースに行を挿入してテキストボックスの値をクリアし、別のレコードを入力することです..問題は、最初にループデータが正常に追加されることです...しかし、次の反復ループで追加されますデータベースの行への空の文字列ですが、テキストボックスからの入力を受け入れて繰り返しを続ける必要があります...コードを読んで助けてください...試してから2週間経ちましたので、これを解決してください..もう一度したいこと - ユーザーがグループメンバーの数を入力 - グループメンバーには、名、姓、性別、都市などの列があります。しかし、私のコードは最初の行を追加し、残りの5行は空のデータになります私の下手な英語で申し訳ありません..誰か私が考えていることを考えてみてください.

    {{
        private void btnAddloan_Click(object sender, RoutedEventArgs e)    

            if (txtname.Text != "" && txtlname.Text != "")
            {
                int c=0;
                int input=int.Parse(txttotalnumberofgroupmembers.Text);

                do
                {
                    string connstr = "Data Source=GER-PC\\PLEASEGOD;Initial Catalog=ACSI;Integrated Security=True";
                    SqlConnection con = new SqlConnection(connstr);
                    con.Open();

                    SqlCommand cmd = new SqlCommand("insert into Customer(FirstName,LastName)  values(@n,@p)", con);
                    cmd.Parameters.AddWithValue("@p", txtname.Text);
                    cmd.Parameters.AddWithValue("@n", txtlname.Text);
                    cmd.ExecuteNonQuery();
                    con.Close();
                    lblnotify.Content = c + 1 + "" + "members added";
                     //clear textbox values and wait for another input
                    txtname.Text = "";
                    txtlname.Text = "";

                    if (txtname.Text != "" && txtlname.Text != "")
                   {
                      continue;

                   }
                  else
                   {

                        MessageBoxResult result =MessageBox.Show("procces","Continue Adding Memebers",MessageBoxButton.YesNoCancel,MessageBoxImage.Warning);
                        //txtname.Text = s;
                        //txtlname.Text= s1;
                         //MessageBox.Show();
                        switch (result)
                        {
                            case MessageBoxResult.Yes:
                                if (txtname.Text != "")
                                {

                                }
                                else
                                {


                                }
                                break;
                            case MessageBoxResult.No:
                                break;
                            case MessageBoxResult.Cancel:
                                break;

                        }

                   }
                   c++;
                } while (c < input);


            }
            else
            {
                MessageBox.Show("plese fill first name and last name");

            }


                } 
4

1 に答える 1

0

挿入を行った後、 txtname.Texttxtlname.Textの値をクリアしています。次の繰り返しでパラメーターを再作成しますが、今回はテキスト値が空です。

 txtname.Text = "";
 txtlname.Text = "";

コマンド オブジェクトを再作成する代わりに、コマンド オブジェクトを N 回実行してみませんか。お気に入り:

SqlCommand cmd = new SqlCommand("insert into Customer(FirstName,LastName)  values(@n,@p)", con);
cmd.Parameters.AddWithValue("@p", txtname.Text);
cmd.Parameters.AddWithValue("@n", txtlname.Text);

for(int i = 0; i < input; i++)
{
    cmd.ExecuteNonQuery();
}
于 2013-05-02T17:13:20.007 に答える