0

これは私のaspx.csページです。これらのコードはデータベースに値を挿入する必要がありますが、現在うまくいっていません。データベースに挿入されていません。エラーは発生していませんが、挿入は行われていません。何が問題なのかわかりません.ISの可能性はありSqlExceptionますか?または他の問題?

   protected void btnSkipSubmit_Click(object sender, EventArgs e)
{
    int random = 0;
    bool isValidInt = int.TryParse(txtrandom.Text, out random);
    //string dummmy = "D";
    //int dum = 0;
    Patient p = new Patient();

    //PatientBill pb = new PatientBill();
    myConnection obj1 = new myConnection();
    DateTime sdt = DateTime.Now;
   // string a;
   string str = ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString;
   string cmdString = "";
   SqlConnection con = new SqlConnection(str);
   SqlCommand cmd = new SqlCommand(cmdString, con);
   SqlTransaction transaction;

    if (isValidInt)
    {
        for (int i = 0; i < random; i++)
        {

            //a = obj1.fnSkipPatient(p);

            string dummmy = "D";
            int dum = 0;
            //DateTime sdt = DateTime.Now;
            cmdString = "INSERT INTO Patient_Data(PatientID,PatientName,F_H_G,F_H_GName,AgeOnRegn,Email,ContactNo,Gender,Married,AddressLine1,AddressLine2,City,PinCode,Religion,Occupation,RegTime,VisitDate,CurrDept,NextDept,PayID,PayDet1,PayDet2,PayDet3,PayValidity,Archived,UpdateUser,UpdateShift,UpdateDate,LocID,AddressLine3,Remark) VALUES (@PatientID,@PatientName,@F_H_G,@F_H_GName,@AgeOnRegn,@Email,@ContactNo,@Gender,@Married,@AddrLine1,@AddrLine2,@City,@PinCode,@Religion,@Occupation,@RegTime,@VisitDate,@CurrDept,@NextDept,@PayID,@PayDet1,@PayDet2,@PayDet3,@PayValidity,@Archived,@UpdateUser,@UpdateShift,@UpdateDate,@LocID,@AddrLine3,@Remark)";
            con = new SqlConnection(str);
            try
            {
                //log.Debug("Entering fnAddPatient method-Function to add a new patient into the database,generate registration bill");
                con.Open();
                transaction = con.BeginTransaction();

                cmd = new SqlCommand(cmdString, con, transaction);

                cmd.Parameters.Add("@PatientID", SqlDbType.VarChar, 12);
                cmd.Parameters["@PatientID"].Value = p.HospitalNo;

                cmd.Parameters.Add("@PatientName", SqlDbType.VarChar, 30);
                cmd.Parameters["@PatientName"].Value = dummmy;

                cmd.Parameters.Add("@F_H_G", SqlDbType.VarChar, 1);
                cmd.Parameters["@F_H_G"].Value = dummmy;

                cmd.Parameters.Add("@F_H_GName", SqlDbType.VarChar, 30);
                cmd.Parameters["@F_H_GName"].Value = dummmy;

                cmd.Parameters.Add("@AgeOnRegn", SqlDbType.Int);
                cmd.Parameters["@AgeOnRegn"].Value = dum;

                cmd.Parameters.Add("@Email", SqlDbType.VarChar, 40);
                cmd.Parameters["@Email"].Value = dummmy;

                cmd.Parameters.Add("@ContactNo", SqlDbType.VarChar, 12);
                cmd.Parameters["@ContactNo"].Value = dummmy;

                cmd.Parameters.Add("@Gender", SqlDbType.VarChar, 1);
                cmd.Parameters["@Gender"].Value = dummmy;

                cmd.Parameters.Add("@Married", SqlDbType.VarChar, 1);
                cmd.Parameters["@Married"].Value = dummmy;

                cmd.Parameters.Add("@AddrLine1", SqlDbType.VarChar, 100);
                cmd.Parameters["@AddrLine1"].Value = dummmy;

                cmd.Parameters.Add("@AddrLine2", SqlDbType.VarChar, 100);
                cmd.Parameters["@AddrLine2"].Value = dummmy;

                cmd.Parameters.Add("@AddrLine3", SqlDbType.VarChar, 100);
                cmd.Parameters["@AddrLine3"].Value = dummmy;

                cmd.Parameters.Add("@City", SqlDbType.VarChar, 20);
                cmd.Parameters["@City"].Value = dummmy;

                cmd.Parameters.Add("@PinCode", SqlDbType.Int);
                cmd.Parameters["@PinCode"].Value = dum;

                cmd.Parameters.Add("@Religion", SqlDbType.VarChar, 20);
                cmd.Parameters["@Religion"].Value = dummmy;

                cmd.Parameters.Add("@Occupation", SqlDbType.VarChar, 20);
                cmd.Parameters["@Occupation"].Value = dummmy;

                cmd.Parameters.Add("@RegTime", SqlDbType.DateTime);
                cmd.Parameters["@RegTime"].Value = sdt;

                cmd.Parameters.Add("@VisitDate", SqlDbType.DateTime);
                cmd.Parameters["@VisitDate"].Value = sdt;

                cmd.Parameters.Add("@CurrDept", SqlDbType.Int);
                cmd.Parameters["@CurrDept"].Value = dum;

                cmd.Parameters.Add("@NextDept", SqlDbType.Int);
                cmd.Parameters["@NextDept"].Value = dum;

                cmd.Parameters.Add("@PayId", SqlDbType.VarChar, 2);
                cmd.Parameters["@PayId"].Value = dummmy;

                cmd.Parameters.Add("@PayDet1", SqlDbType.VarChar, 15);
                cmd.Parameters["@PayDet1"].Value = dummmy;

                cmd.Parameters.Add("@PayDet2", SqlDbType.VarChar, 50);
                cmd.Parameters["@PayDet2"].Value = dummmy;

                cmd.Parameters.Add("@PayDet3", SqlDbType.VarChar, 15);
                cmd.Parameters["@PayDet3"].Value = dummmy;

                cmd.Parameters.Add("@PayValidity", SqlDbType.DateTime);
                cmd.Parameters["@PayValidity"].Value = sdt;

                cmd.Parameters.Add("@Archived", SqlDbType.VarChar, 1);
                cmd.Parameters["@Archived"].Value = dummmy;

                cmd.Parameters.Add("@UpdateUser", SqlDbType.VarChar, 20);
                cmd.Parameters["@UpdateUser"].Value = dummmy;

                cmd.Parameters.Add("@UpdateShift", SqlDbType.Int);
                cmd.Parameters["@UpdateShift"].Value = dum;

                cmd.Parameters.Add("@UpdateDate", SqlDbType.DateTime);
                cmd.Parameters["@UpdateDate"].Value = sdt;

                cmd.Parameters.Add("@PatientCount", SqlDbType.Int);
                cmd.Parameters["@PatientCount"].Value = dum;

                cmd.Parameters.Add("@LocId", SqlDbType.VarChar, 2);
                cmd.Parameters["@LocId"].Value = dummmy;

                cmd.Parameters.Add("@Remark", SqlDbType.VarChar, 100);
                cmd.Parameters["@Remark"].Value = dummmy;


                cmd.CommandType = CommandType.Text;

                cmd.Parameters.Clear();
                string result = cmd.ExecuteNonQuery().ToString();

            }
            catch (Exception ex)
            {

            }
            finally
            {
                con.Close();
            }
        }
    }

    }
4

4 に答える 4

1

cmd.Parameters.Clear();後に移動cmd.ExecuteNonQuery()

のみで試してくださいcmd.ExecuteNonQuery()

また、あなたisValidIntがである場合false、クエリは実行されないことに注意してください。まず、あなたisValidIntが true かどうかを確認してください。論理を変えたほうがいい

于 2013-10-24T06:54:31.790 に答える
0

サーバー管理スタジオで次のコードを実行します....

GRANT INSERT ON [dbo].[Patient_Data] TO public

それがうまくいくことを願っています...

于 2013-10-24T06:55:05.053 に答える
0

トランザクションで変更をコミットし、さらに cosidertransaction.Rollback();でコミットする必要がありますcatch

transaction.Commit();の後に行方不明になっていると思いますcmd.ExecuteNonQuery();

        try
        {
            con.Open();
            transaction = con.BeginTransaction();
            cmd = new SqlCommand(cmdString, con, transaction);

            cmd.Parameters.AddWithValue("@PatientID", p.HospitalNo);
            // Continue your usual work
            cmd.Parameters.AddWithValue("@Remark", dummmy);

            cmd.CommandType = CommandType.Text;
            cmd.ExecuteNonQuery();
            transaction.Commit();
            cmd.Parameters.Clear();
        }
        catch (Exception ex)
        {
            transaction.Rollback();
        }
        finally
        {
            con.Close();
        }

上記のコードに似たものが機能するはずです。

それが役に立てば幸い。

于 2013-10-24T06:55:14.713 に答える
0

1) 接続文字列が有効であることを確認します。

2) SQL Server Management Studio を閉じて開くと、データベースは「マスター」に切り替わります。コントロールを DB に変更する必要があります。SQL エディタのツールバーにドロップダウン ボックスが表示され、そこで DB を選択できます。現在のクエリが実行される場所。

于 2013-10-24T09:50:24.387 に答える