-1

ウェブフォームからデータベースを更新する際に問題が発生しています。データソースによって入力される一連のテキストボックスとドロップダウンリストを使用していますが、何らかの理由でそれらを更新できません。

基本的に、行の主キーは次のページに渡され、そこでテキスト ボックス、ドロップダウン リストにその行のデータが取り込まれます。

これが私がこれまでに試したことです

    //Update the record with new information entered into controls
    protected void UpdateBut_Click(object sender, EventArgs e)
    {

        using (SqlConnection conn = new SqlConnection("Data Source=stephenp\\sqlexpress;Initial Catalog=Asset management System DB;Integrated Security=True"))
        {
            string sql = "UPDATE Peripherals SET PeripheralType=@PeripheralType, Model=@Model, PeripheralSerialNumber=@SerialNum, " +
                "Company = @Company, Department=@Department, Status=@Status, WarrantyExpirationDate=@Warranty, PeripheralCapexNumber=@CapexNum, " +
                "IPAddress=@IPAddress, LastModifiedDate = @LastMD, LastModifiedBy=@LastMB WHERE (PeripheralTagNumber = @PeripheralTagNumber)";


          //try
           //{
            using (SqlCommand cmd = new SqlCommand(sql, conn))
            {
                cmd.Parameters.AddWithValue("@PeripheralType", TypeDDL.Text.Trim());
                cmd.Parameters.AddWithValue("@Model", ModelTB.Text.Trim());
                cmd.Parameters.AddWithValue("@SerialNum", SerialNumTB.Text.Trim());
                cmd.Parameters.AddWithValue("@Company", CompanyDDL.Text.Trim());
                cmd.Parameters.AddWithValue("@Department", DepartmentDDL.Text.Trim());
                cmd.Parameters.AddWithValue("@Status", StatusDDL.Text.Trim());
                cmd.Parameters.AddWithValue("@Warranty", DateTime.Parse(WarrantyTB.Text.Trim()).ToShortDateString());
                cmd.Parameters.AddWithValue("@CapexNum", CapexNumTB.Text.Trim());
                cmd.Parameters.AddWithValue("@IPAddress", IPAddressTB.Text.Trim());
                cmd.Parameters.AddWithValue("@LastMD", DateTime.Now.Date.ToShortDateString());
                cmd.Parameters.AddWithValue("@LastMB", Session["username"].ToString());
                cmd.Parameters.AddWithValue("@PeripheralTagNumber", ID);

                conn.Open();
                cmd.ExecuteNonQuery();
                conn.Close();
             }
           //}
            //catch (SqlException ex) { }
        }

        this.getData();
    }

ありがとう

4

2 に答える 2

0

SqlCommand を構築するとき、およびクエリを実行するときは、ブロック try / catch を使用する必要があります。

データベースに更新がない場合は、コマンドに問題がある可能性があります。

于 2013-06-20T09:16:24.877 に答える