1

ASP.NET の Visual Web Developer と SQL Server データベースで Web アプリケーションを作成しました。でSqlDataSourceとつながりましたINSERT INTO

だから私のコードは次のとおりです。

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
            SelectCommand="SELECT * FROM [Table1]"
            InsertCommand="INSERT INTO [Table1] ([Name(nick)], [E-mail], [Text]) VALUES (@Name(nick), @E-mail, @Text)">
        <InsertParameters>
            <asp:Parameter Name="Name(nick)" />
            <asp:Parameter Name="E-mail" />
            <asp:Parameter Name="Text" />
        </InsertParameters>
 </asp:SqlDataSource>  

すべてがエラーなしでうまく見えます。プロジェクトを Web ブラウザーで表示するか、デバッグを開始すると、通常の Web ページが表示されます。次に、テキストを入力し、クリックして送信ボタンをクリックすると、アプリケーションでエラーが発生します。

説明: '(' 付近の構文が正しくありません。スカラー変数 "@Name" を宣言する必要があります。

仕様: System.Data.SqlClient.SqlException: '(' 付近の構文が正しくありません。スカラー変数 "@Name" を宣言する必要があります。

私のテーブルにはこのすべての値があり、Web ページでもそれを使用しています。何が悪いのか教えていただけますか?

どうもありがとう!

4

3 に答える 3

2

このクエリに置き換えます

INSERT INTO Table1 (Name, E-mail, Text) VALUES (@Name, @E-mail, @Text)

(ニック)クエリに問題を作成する

InsertCommand="INSERT INTO Table1 (Name, E-mail, Text) VALUES (@Name, @E-mail, @Text)">
于 2012-08-29T20:41:48.317 に答える
2

構文が正しくないようです。フィールド名をリストする必要があり、次にパラメーター名をリストする必要があり
ます。正しいフィールドがNameあり、パラメーターが呼び出されていると思いますが、@nick私が知る限り、逆の可能性もあります。

 InsertCommand="INSERT INTO [Table1] ([Name], [E-mail], [Text]) VALUES (@nick, @E-mail, @Text)"

補足として、データ型 (TEXT) の名前をフィールド名として使用しないようにしてください。

于 2012-08-29T20:43:10.493 に答える
0

括弧を含むパラメーターName(nick)は許可されておらず、問題の原因となっています。InsertParametersとで置き換えるだけInsertCommandです。

 InsertCommand="INSERT INTO [Table1] ([Name], [E-mail], [Text]) VALUES (@Name, @E-mail, @Text)">
  -- [Name] is considered as column in the table
 <asp:Parameter Name="Name" />
于 2012-08-29T20:51:50.973 に答える