2017-04-15 9 views
0

私はC#を初めて使用しました。このコードを使用してデータベースにデータを挿入しようとしました。データがCでデータベースに挿入されていない

私が提出するデータを挿入し、クリックしようとしたとき、私はcmd.ExecuteNonQueryに発生し、このエラーを修正することができますどのように私を助けてください:

ExecutenonQueryexceptionのカントハンドルをがsystem.data.dllで

このエラーを解決するにはどうすればよいですか?

<connectionStrings> 
    <add name="ConnectionString" 
     connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\adityaDB.mdf;Integrated Security=True;User Instance=True" 
     providerName="System.Data.SqlClient"/> 
</connectionStrings> 

ASPコード ..

<%@ Page Title="" Language="C#" MasterPageFile="~/AGD.Master" AutoEventWireup="true" CodeBehind="ConsumerRegistration.aspx.cs" Inherits="Aditya_Gas_Distributor.ConsumerRegistration" %> 

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> 
     <div> 
      <center> 
       <br /> 
       <form runat="server"> 
         <table style="border: ridge solid #5D7B9D; background-color: Window; width: 665px;"> 
          <tr> 
           <td colspan="6" align="center" style="background-color: #C1312F"> 
            <b style="color: White">Gas Connection Registration Form </b> 
           </td> 
          </tr> 
          <tr> 
           <td colspan="6"></td> 
          </tr> 
          <tr> 
           <td>FirstName<samp style="color:red">*</samp></td> 
           <td> 
            <asp:TextBox ID="txtName" runat="server"></asp:TextBox></td> 
           <td> 

           </td> 
           <td colspan="3" rowspan="4"> 
            <asp:FileUpload ID="FileUp" runat="server" /> 
            <asp:Image ID="Image1" BorderStyle="Dashed" BorderWidth="1" runat="server" Height="100px" Width="133px"/> 
           </td> 
          </tr> 

          <tr> 
           <td colspan="3"></td> 
          </tr> 
          <tr> 
           <td>MiddleName<samp style="color:red">*</samp></td> 
           <td> 
            <asp:TextBox ID="txtMName" runat="server"></asp:TextBox></td> 
           <td></td> 
          </tr> 
          <tr> 
           <td colspan="3"></td> 
          </tr> 
          <tr> 
           <td>LastName<samp style="color:red">*</samp></td> 
           <td> 
            <asp:TextBox ID="txtLName" runat="server"></asp:TextBox> 
           </td> 
           <td></td> 
           <td>Gender<samp style="color:red">*</samp></td> 
           <td align="left"> 
            <asp:DropDownList runat="server" ID="ddl1"> 
             <asp:ListItem>--Select One--</asp:ListItem> 
             <asp:ListItem>Male</asp:ListItem> 
             <asp:ListItem>Female</asp:ListItem> 
            </asp:DropDownList> 
           </td> 
           <td> 

           </td> 
          </tr> 
          <tr> 
           <td colspan="6"></td> 
          </tr> 
          <tr> 
           <td>DOB<samp style="color:red">*</samp> 
           </td> 
           <td> 
            <asp:TextBox ID="txtDOB" runat="server" TextMode="Date"></asp:TextBox> 




           </td> 
           <td> 

           </td> 
           <td>Connection Type<samp style="color:red">*</samp></td> 
           <td valign="middle" align="left"> 
            <asp:DropDownList ID="ddlConnection" runat="server" Height="22px" Width="107px"> 
             <asp:ListItem>--Select One--</asp:ListItem> 
             <asp:ListItem>Domestic</asp:ListItem> 
             <asp:ListItem>Commercial</asp:ListItem> 
            </asp:DropDownList> 
           </td> 
           <td>&nbsp;</td> 
          </tr> 
          <tr> 
           <td>&nbsp;</td> 
           <td>&nbsp;</td> 
           <td>&nbsp;</td> 
           <td>&nbsp;</td> 
           <td align="left" valign="middle">&nbsp;</td> 
           <td>&nbsp;</td> 
          </tr> 
          <tr> 
           <td>State Name<samp style="color:red">*</samp></td> 
           <td> 
            <asp:DropDownList ID="ddlstate" runat="server" Width="157px"> 
             <asp:ListItem Selected="True">--Select One--</asp:ListItem> 
             <asp:ListItem>Andaman and Nicobar Islands</asp:ListItem> 
             <asp:ListItem>Andhra Pradesh</asp:ListItem> 
             <asp:ListItem>Arunachal Pradesh</asp:ListItem> 
             <asp:ListItem>Assam</asp:ListItem> 
             <asp:ListItem>Bihar</asp:ListItem> 
             <asp:ListItem>Chandigarh</asp:ListItem> 
             <asp:ListItem>Chattisgarh</asp:ListItem> 
             <asp:ListItem>Dadra and Nagar Haveli</asp:ListItem> 
             <asp:ListItem>Daman and Diu</asp:ListItem> 
             <asp:ListItem>Delhi</asp:ListItem> 
             <asp:ListItem>Goa</asp:ListItem> 
             <asp:ListItem>Gujarat</asp:ListItem> 
             <asp:ListItem>Haryana</asp:ListItem> 
             <asp:ListItem>Himachal Pradesh</asp:ListItem> 
             <asp:ListItem>Jammu and Kashmir</asp:ListItem> 
             <asp:ListItem>Jharkhand</asp:ListItem> 
             <asp:ListItem>Karnataka</asp:ListItem> 
             <asp:ListItem>Kerala</asp:ListItem> 
             <asp:ListItem>Lakshadweep</asp:ListItem> 
             <asp:ListItem>Madhya Pradesh</asp:ListItem> 
             <asp:ListItem>Maharashtra</asp:ListItem> 
             <asp:ListItem>Manipur</asp:ListItem> 
             <asp:ListItem>Meghalaya</asp:ListItem> 
             <asp:ListItem>Mizoram</asp:ListItem> 
             <asp:ListItem>Nagaland</asp:ListItem> 
             <asp:ListItem>Orissa</asp:ListItem> 
             <asp:ListItem>Pondicherry</asp:ListItem> 
             <asp:ListItem>Punjab</asp:ListItem> 
             <asp:ListItem>Rajasthan</asp:ListItem> 
             <asp:ListItem>Sikkim</asp:ListItem> 
             <asp:ListItem>Tamil Nadu</asp:ListItem> 
             <asp:ListItem>Tripura</asp:ListItem> 
             <asp:ListItem>Uttarakhand</asp:ListItem> 
             <asp:ListItem>Uttaranchal</asp:ListItem> 
             <asp:ListItem>Uttar Pradesh</asp:ListItem> 
             <asp:ListItem>West Bengal</asp:ListItem> 
            </asp:DropDownList> 
           </td> 
           <td>&nbsp;</td> 
           <td> 
            <asp:Label ID="lblDistrict" runat="server" Text="District Name"></asp:Label> 
           </td> 
           <td align="left"><samp style="color:red">*</samp> 
            <asp:DropDownList ID="ddldistrict" runat="server"> 
             <asp:ListItem>aa</asp:ListItem> 
            </asp:DropDownList> 
           </td> 
           <td> 

           </td> 
          </tr> 
          <tr> 
           <td>&nbsp;</td> 
           <td>&nbsp;</td> 
           <td>&nbsp;</td> 
           <td>&nbsp;</td> 
           <td align="left">&nbsp;</td> 
           <td>&nbsp;</td> 
          </tr> 
          <tr> 
           <td> 
            <asp:Label ID="lblCity" runat="server" Text="City Name"></asp:Label> 
           </td> 
           <td><samp style="color:red">*</samp> 
            <asp:DropDownList ID="ddl_city" runat="server"> 
             <asp:ListItem>aa</asp:ListItem> 
            </asp:DropDownList> 
           </td> 
           <td> 

           </td> 
           <td> 
            <asp:Label ID="lblAgency" runat="server" Text="Agency Name"></asp:Label> 
           </td> 
           <td align="left"> 
            <samp style="color:red">*</samp> 
            <asp:DropDownList ID="ddl_agency" runat="server"> 
             <asp:ListItem>aa</asp:ListItem> 
            </asp:DropDownList> 
           </td> 
           <td> 

           </td> 
          </tr> 
          <tr> 
           <td>&nbsp;</td> 
           <td>&nbsp;</td> 
           <td>&nbsp;</td> 
           <td>&nbsp;</td> 
           <td align="left">&nbsp;</td> 
           <td>&nbsp;</td> 
          </tr> 
          <tr> 
           <td>Email Id<samp style="color:red">*</samp></td> 
           <td> 
            <asp:TextBox ID="txtEmail" runat="server"></asp:TextBox></td> 
           <td> 

           </td> 
           <td>PhoneNo<samp style="color:red">*</samp></td> 
           <td align="left"> 
            <asp:TextBox ID="txtPhone" runat="server"></asp:TextBox></td> 
           <td> 


           </td> 
          </tr> 
          <tr> 
           <td colspan="6"></td> 
          </tr> 
          <tr> 
           <td>User Name<samp style="color:red">*</samp></td> 
           <td> 
            <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox> 

           </td> 
           <td> 

           </td> 
           <td rowspan="2">Address<samp style="color:red">*</samp> 
           </td> 
           <td rowspan="2" align="left"> 
            <asp:TextBox ID="txtAddress" TextMode="MultiLine" runat="server" Height="80px" 
             Width="176px"></asp:TextBox> 
           </td> 
           <td rowspan="2"> 

           </td> 
          </tr> 
          <tr> 
           <td style="height: 62px">Password<samp style="color:red">*</samp></td> 
           <td style="height: 62px"> 
            <asp:TextBox ID="txtPassword" runat="server" TextMode="Password"></asp:TextBox> 

           </td> 
           <td style="height: 62px"> 

            <asp:CompareValidator ID="CompareValidator1" runat="server" ControlToCompare="txtPassword" ControlToValidate="cnfrmpass" ErrorMessage="CompareValidator" ForeColor="#CC3300">Password &amp; Confirm Password Must be Same</asp:CompareValidator> 

           </td> 
          </tr> 
          <tr> 
           <td>Confirm Password<samp style="color:red">*</samp></td> 
           <td> 
            <asp:TextBox ID="cnfrmpass" runat="server" TextMode="Password"></asp:TextBox> 

           </td> 
          </tr> 
          <tr> 
           <td colspan="6"> 
            <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> 
           </td> 
          </tr> 
          <tr> 
           <td colspan="3">&nbsp;</td> 
           <td colspan="3"> 
            <asp:Button ID="Button1" runat="server" Text="Submit" OnClick="Button1_Click" /> 
            &nbsp; 
          <asp:Button ID="Button2" runat="server" Text="cancle" /> 
           </td> 
          </tr> 

          <tr> 
           <td colspan="6" style="background-color: #C1312F"></td> 
          </tr> 
         </table> 
        </form> 
      </center> 
     </div> 
    </asp:Content> 

C#のコード...

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data.SqlClient; 
using System.Configuration; 
using System.Web.Configuration; 

namespace Aditya_Gas_Distributor 
{ 
    public partial class ConsumerRegistration : System.Web.UI.Page 
    { 
      // SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["conString"].ConnectionString); 
      SqlCommand cmd = new SqlCommand(); 
      SqlConnection con = new SqlConnection(); 

      protected void Page_Load(object sender, EventArgs e) 
      { 
       SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString); 
       con.Open(); 
      } 

      protected void Button1_Click(object sender, EventArgs e) 
      { 
       //string cs = ConfigurationManager.ConnectionStrings["adityaDB"].ConnectionString; 

       Label1.Text = "Connected"; 

       SqlCommand cmd = new SqlCommand("INSERT INTO tbl_UserRegistration (UserName, Password, FirstName, MName, LastName, Gender, DOB, State, District, City, ConnectionType, AgencyName, Address, PhoneNo, Email, Image, FileName)" + 
         "VALUES(@UserName, @Password, @FirstName, @MName, @LastName, @Gender, @DOB, @State, @District, @City, @ConnectionType, @AgencyName, @Address, @PhoneNo, @Email, @Image, @FileName)", con); 
        cmd.Parameters.AddWithValue("@UserName",txtUserName.Text); 
        cmd.Parameters.AddWithValue("@Password", txtPassword.Text); 
        cmd.Parameters.AddWithValue("@FirstName", txtName.Text); 
        cmd.Parameters.AddWithValue("@LastName", txtMName.Text); 
        cmd.Parameters.AddWithValue("@Gender", ddl1.SelectedItem.Value); 
        cmd.Parameters.AddWithValue("@DOB", txtDOB.Text); 
        cmd.Parameters.AddWithValue("@State", ddlstate.SelectedItem.Value); 
        cmd.Parameters.AddWithValue("@District", ddldistrict.SelectedItem.Value); 
        cmd.Parameters.AddWithValue("@City", ddl_city.SelectedItem.Value); 
        cmd.Parameters.AddWithValue("@ConnectionType", ddlConnection.SelectedItem.Value); 
        cmd.Parameters.AddWithValue("@AgencyName", ddl_agency.SelectedItem.Value); 
        cmd.Parameters.AddWithValue("@Address", txtAddress.Text); 
        cmd.Parameters.AddWithValue("@PhoneNo", txtPhone.Text); 
        cmd.Parameters.AddWithValue("@Email", txtEmail.Text); 
        cmd.Parameters.AddWithValue("@Image",Image1.ImageUrl); 
        cmd.Parameters.AddWithValue("@FileName", FileUp.PostedFile.FileName); 
        cmd.ExecuteNonQuery(); 
      } 
     } 
    } 
+0

SqlCommandを実行するには、開いているSQL接続が必要です。ローカル変数へのページロード時に接続を開くことは役に立ちません。 –

+1

Re:_ "ExecutenonQueryException cantはsystem.data.dllによって処理できません" _元の例外メッセージを引用してください。それを言い換えてはいけません(あなたはそれをより曖昧にしています)。 – stakx

答えて

-1

私はあなたのオブジェクトconは、以下の行に間違っていると思います。

SqlCommand cmd = new SqlCommand("INSERT INTO tbl_UserRegistration (UserName, Password, FirstName, MName, LastName, Gender, DOB, State, District, City, ConnectionType, AgencyName, Address, PhoneNo, Email, Image, FileName)" + 
         "VALUES(@UserName, @Password, @FirstName, @MName, @LastName, @Gender, @DOB, @State, @District, @City, @ConnectionType, @AgencyName, @Address, @PhoneNo, @Email, @Image, @FileName)", con); 

コマンドオブジェクトを作成する前に必ず設定してください。あなたが開いSqlConnectionを必要とする実行するSqlCommandについては

string con = ConfigurationManager.ConnectionStrings["adityaDB"].ConnectionString; 
2

。ローカル変数へのページロード時に接続を開くことは役に立ちません。 また、SqlConnectionとSqlCommandのインスタンスをページレベルに保つことは、おそらく最適な方法ではありません。あなたのボタンのクリックは、それ自身のSqlConnectionを持っている必要があり、それはIDisposableをだから、それを使用した文の中で使用する必要があります。

protected void Button1_Click(object sender, EventArgs e) 
{ 
    Label1.Text = "Connected"; 

    using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString)) 
    { 
     using (var cmd = new SqlCommand("INSERT INTO tbl_UserRegistration (UserName, Password, FirstName, MName, LastName, Gender, DOB, State, District, City, ConnectionType, AgencyName, Address, PhoneNo, Email, Image, FileName)" + 
      "VALUES(@UserName, @Password, @FirstName, @MName, @LastName, @Gender, @DOB, @State, @District, @City, @ConnectionType, @AgencyName, @Address, @PhoneNo, @Email, @Image, @FileName)", con)) 
     { 
      cmd.Parameters.AddWithValue("@UserName", txtUserName.Text); 
      cmd.Parameters.AddWithValue("@Password", txtPassword.Text); 
      cmd.Parameters.AddWithValue("@FirstName", txtName.Text); 
      cmd.Parameters.AddWithValue("@LastName", txtMName.Text); 
      cmd.Parameters.AddWithValue("@Gender", ddl1.SelectedItem.Value); 
      cmd.Parameters.AddWithValue("@DOB", txtDOB.Text); 
      cmd.Parameters.AddWithValue("@State", ddlstate.SelectedItem.Value); 
      cmd.Parameters.AddWithValue("@District", ddldistrict.SelectedItem.Value); 
      cmd.Parameters.AddWithValue("@City", ddl_city.SelectedItem.Value); 
      cmd.Parameters.AddWithValue("@ConnectionType", ddlConnection.SelectedItem.Value); 
      cmd.Parameters.AddWithValue("@AgencyName", ddl_agency.SelectedItem.Value); 
      cmd.Parameters.AddWithValue("@Address", txtAddress.Text); 
      cmd.Parameters.AddWithValue("@PhoneNo", txtPhone.Text); 
      cmd.Parameters.AddWithValue("@Email", txtEmail.Text); 
      cmd.Parameters.AddWithValue("@Image", Image1.ImageUrl); 
      cmd.Parameters.AddWithValue("@FileName", FileUp.PostedFile.FileName); 
      con.Open(); 
      cmd.ExecuteNonQuery(); 
     } 
    } 
} 

は、ページレベルSqlCommandSqlConnectionを取り外し、Page_Loadの地方SqlConnectionの開口部を取り除きます。

+0

大丈夫です!しかし、私はSQL接続を開くことができますか?なぜページ・レベルがベスト・アイデアではないのですか?私に詳細な説明を与えてください。 –

+0

答えのコードをお読みください。これにはSqlConnectionのローカル変数があります。データベースへの接続を維持することは、再考の面で費用がかかるため、実際に必要なときにのみオープンしたいと考えています。ページ(またはクラス)レベルでIDisposableを実装するインスタンスを使用することは、ほとんど常に悪い考えです。 IDisposableオブジェクトは、できるだけ早く処理する必要があります。 –

関連する問題