2016-08-24 7 views
-2

私はVB.netを初めて使用しています。私はVisual Studio 2015でプロジェクトを進めています。フォームのポストを介してSQLテーブルに新しいレコードを挿入することはできますが、ボタンをクリックすると何も起こりません。新しいレコードは追加されません。私の現在のコードは以下の通りです。ありがとう:onClick Submitボタンを使用してvb.netフォームを使用してSQLテーブルにデータを投稿

Contact.aspx

<%@ Page Title="Contact" Language="VB" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeFile="Contact.aspx.vb" Inherits="Contact" %> 
<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent"> 
<head> 
<meta charset="utf-8"> 
</head> 
<body> 
<br /> 
<p style="font-size: 15px;">Fill out the form below and click SUBMIT once completed:</p> 
<form id="submitData" method="post"> 
<fieldset> 
    <p><label for="Term">Term:</label> 
    <input type="text" name="Term" required />* 
    </p> 

    <p><label for="genre">Definition:</label> 
    <input type="text" name="Definition" required />* 
    </p> 

    <p><label for="year">Long Description:</label> 
    <textarea rows="3" type="text" name="LongDescription" required></textarea>* 
    </p> 
    <p><label for="title">Category:</label> 
    <select name="Category" style="width: 312px; height: 31px; font-family: Arial, Helvetica, sans-serif; font-size: 1.2em;"> 
     <option selected="selected"> 
     <option value="Branding">Branding</option> 
     <option value="Business">Business</option> 
     <option value="Business Management">Business Management</option> 
     <option value="CRM">CRM</option> 
     <option value="Communications">Communications</option> 
     <option value="Dental Health">Dental Health</option> 
     <option value="Education">Education</option> 
     <option value="General">General</option> 
     <option value="Governmental">Governmental</option> 
     <option value="IT">IT</option> 
     <option value="Marketing">Marketing</option> 
     <option value="Nutrition">Nutrition</option> 
     <option value="State Laws">State Laws</option> 
     <option value="Other">Other...</option> 
    </select> 
    </p> 
    <p><label for="title">Date Loaded:</label> 
    <input type="text" name="DateLoaded" id="datepicker" required />* 
    </p> 
    <p><label for="title">Provided By (your name):</label> 
    <input type="text" name="ProvidedBy" required />* 
    </p> 
    <p><label for="title">Department:</label> 
    <input type="text" name="Department" required />* 
    </p> 
    <p><label for="title">Internal Expert or SME for this topic:</label> 
    <input type="text" name="SME" /> 
    </p> 

    <p><asp:Button ID="buttonSubmit" runat="server" OnClick="buttonSubmit_Click" Text="Submit" /></p> 
</fieldset> 

</form> 
<br /> 
<p>* Please allow between 24 to 48 hours to have your term added to the dictionary.</p> 
<br /> 
<a style="font-size: 16px; font: bold; background-color: black; color:white; text-decoration:none; padding:5px;" href="Default.aspx">Back</a> 
</body> 
</asp:Content> 

Contact.aspx.vb

Partial Class Contact 

Inherits Page 

Protected Sub buttonSubmit_Click(sender As Object, e As EventArgs) 
    Dim sqlConnection1 As New Data.SqlClient.SqlConnection("ConnectionString HERE") 

    Dim cmd As New Data.SqlClient.SqlCommand 
    cmd.CommandType = System.Data.CommandType.Text 
    cmd.CommandText = "INSERT INTO table_terms (Term, Definition, LongDescription, Category, DateLoaded, ProvidedBy, Department, SME) VALUES (Term, Definition, LongDescription, Category, DateLoaded, ProvidedBy, Department, SME)" 
    cmd.Connection = sqlConnection1 

    sqlConnection1.Open() 
    cmd.ExecuteNonQuery() 
    sqlConnection1.Close() 

End Sub 

End Class 

任意のヒントは素晴らしいことです。どうもありがとう!

M.C.

答えて

0

あなたのコマンドテキストはジャッキアップされています。たとえば、文字列を引用符で囲む必要があります。 SSMSで文を実行してみてください。そこから動作しない場合は、.Netからは動作しません。

また、セキュリティ上の問題があります。ストアドプロシージャを使用し、パラメータとして値を渡します。 .Netで実行するステートメントを構築すると、パフォーマンスと注入脆弱性の両方が悪化します。

+0

フィードバック@btberryに感謝します。これらの変更を適用する –

関連する問題