に、私は次のエラーを取得する:'ビットの近くに不正な構文'というエラーが表示されます。スカラー変数 "@"を宣言しなければなりません。私は自分のWebアプリケーションにデータを送信しようとするとC#の
System.Data.SqlClient.SqlException: 'Incorrect syntax near 'bit'. Must declare the scalar variable "@"
私がチェックし、私はどこにでもコードの「ビット」を持っていません。私が書いている列のうちの4つは現在ビット列です。これは私が ""と尋ねた質問に基づいています。
私は討議された変更を実装しましたが、今はエラーが発生し、新しい質問を表示するか新しい質問を追加する必要があるかどうかは不明でした。
HTML:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Revocations.Default_2" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<link href="Styles/StyleSheet1.css" rel="stylesheet" />
</head>
<body>
<form id="form2" runat="server">
<div class="t_row_header">
<asp:Image ID="Image1" runat="server" CssClass="logo" ImageUrl="~/Images/logo.png" />
</div>
<h1>Transfer Revocations</h1>
<div class="form-fields">
<div class="form-group-left">
<label>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtSchoolYear" CssClass="ErrorMessage" ErrorMessage="Please enter a school year." SetFocusOnError="True">*</asp:RequiredFieldValidator>
School Year:
<asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="txtSchoolYear" CssClass="ErrorMessage" ErrorMessage="Please enter a school year >= 2017." Operator="GreaterThanEqual" SetFocusOnError="True" ValueToCompare="2017">*</asp:CompareValidator>
</label>
<asp:TextBox ID="TextBox1" runat="server" CssClass="txtBox"></asp:TextBox>
<label>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtStudentID" CssClass="ErrorMessage" ErrorMessage="Please enter a student ID." SetFocusOnError="True">*</asp:RequiredFieldValidator>
Student ID:</label> <asp:TextBox ID="TextBox2" runat="server" CssClass="txtBox"></asp:TextBox>
<label>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="txtFirstName" CssClass="ErrorMessage" ErrorMessage="Please enter a first name." SetFocusOnError="True">*</asp:RequiredFieldValidator>
First Name:</label> <asp:TextBox ID="TextBox3" runat="server" CssClass="txtBox"></asp:TextBox>
<label>
<asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="txtLastName" CssClass="ErrorMessage" ErrorMessage="Please enter a last name" SetFocusOnError="True">*</asp:RequiredFieldValidator>
Last Name:</label> <asp:TextBox ID="TextBox4" runat="server" CssClass="txtBox"></asp:TextBox>
<label>
<asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ControlToValidate="txtRevokedSchool" CssClass="ErrorMessage" ErrorMessage="Please enter the revoking school" SetFocusOnError="True">*</asp:RequiredFieldValidator>
Revoked School:</label> <asp:TextBox ID="TextBox5" runat="server" CssClass="txtBox"></asp:TextBox>
<label>
<asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server" ControlToValidate="txtRevocationDate" CssClass="ErrorMessage" ErrorMessage="Please enter a revocation date" SetFocusOnError="True">*</asp:RequiredFieldValidator>
Revocation Date:</label> <asp:TextBox ID="TextBox6" runat="server" TextMode="Date" CssClass="txtBox"></asp:TextBox>
</div>
<!-- form-group-left -->
<div class="form-group-right">
<label>
Reason:<asp:CheckBoxList ID="CheckBoxList1" runat="server">
<asp:ListItem text="Academics" Value="1"></asp:ListItem>
<asp:ListItem text="Attendance" Value="2"></asp:ListItem>
<asp:ListItem text="Behavior" Value ="3"></asp:ListItem>
<asp:ListItem text="Cooperative Relationship" Value="4"></asp:ListItem>
</asp:CheckBoxList>
<br />
</label>
<label>
<asp:RequiredFieldValidator ID="RequiredFieldValidator7" runat="server" ControlToValidate="txtNotes" CssClass="ErrorMessage" ErrorMessage="Please enter a note." SetFocusOnError="True">*</asp:RequiredFieldValidator>
Notes:</label> <asp:TextBox ID="TextBox7" runat="server" height="218px" TextMode="MultiLine" CssClass="InsideShadow"></asp:TextBox>
<br />
<asp:Button ID="Button1" runat="server" Text="SUBMIT" CssClass="btn" OnClick="btnSubmit_Click" />
</div>
</div>
<asp:ValidationSummary ID="ValidationSummary2" runat="server" CssClass="ErrorMessage" />
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:PPSS_RevocationConnection %>" DeleteCommand="SELECT
[SchoolYear]
,[Student_ID]
,[Last_Name]
,[First_Name]
,[Revoked_School]
,CAST([Revocation_Date] AS DATE) AS [Revocation_Date]
,[Notes]
,[Academics]
,[Attendance]
,[Behavior]
,[Cooperative Relationship]
FROM [PPSS_Work].[Transfers].[Revocations]"
SelectCommand="SELECT
[SchoolYear]
,[Student_ID]
,[Last_Name]
,[First_Name]
,[Revoked_School]
,CAST([Revocation_Date] AS DATE) AS [Revocation_Date]
,[Notes]
,[Academics]
,[Attendance]
,[Behavior]
,[Cooperative Relationship]
FROM [PPSS_Work].[Transfers].[Revocations]"
UpdateCommand="SELECT
[SchoolYear]
,[Student_ID]
,[Last_Name]
,[First_Name]
,[Revoked_School]
,CAST([Revocation_Date] AS DATE) AS [Revocation_Date]
,[Notes]
,[Academics]
,[Attendance]
,[Behavior]
,[Cooperative Relationship]
FROM [PPSS_Work].[Transfers].[Revocations]"></asp:SqlDataSource>
</form>
</body>
</html>
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.Sql;
using System.Data.SqlClient;
using System.Configuration;
namespace Revocations
{
public partial class Default_2 : System.Web.UI.Page
{
protected void btnSubmit_Click(object sender, EventArgs e)
{
// Establish SQL Connection
SqlConnection sqlCon = new SqlConnection("Data Source = acctsql; Initial Catalog = PPSS_Work; Integrated Security = True") ;
{
// Write INSERT SQL statement
SqlCommand sqlCom = new SqlCommand("INSERT INTO [PPSS_Work].[Transfers].[t_Revocations](SchoolYear, Student_ID, Last_Name, First_Name, Revoked_School,Revocation_Date, Academics, Attendance, Behavior, [Cooperative Relationship], Notes) VALUES(@SchoolYear, @Student_ID, @First_Name, @Last_Name, @Revoked_School, @Revocation_Date,@Academics, @Attendance, @Behavior, @[Cooperative Relationship], @Notes)", sqlCon);
sqlCom.Parameters.AddWithValue("@SchoolYear", txtSchoolYear.Text);
sqlCom.Parameters.AddWithValue("@Student_ID", txtStudentID.Text);
sqlCom.Parameters.AddWithValue("@First_Name", txtFirstName.Text);
sqlCom.Parameters.AddWithValue("@Last_Name", txtLastName.Text);
sqlCom.Parameters.AddWithValue("@Revoked_School", txtRevokedSchool.Text);
sqlCom.Parameters.AddWithValue("@Revocation_Date", txtRevocationDate.Text);
sqlCom.Parameters.AddWithValue("@Notes", txtNotes.Text);
foreach (ListItem item in chkbxlst1.Items)
{
if (item.Selected)
sqlCom.Parameters.AddWithValue("@" + item.Text, true);
}
sqlCon.Open();
sqlCom.ExecuteNonQuery();
sqlCon.Close();
if (IsPostBack)
{
txtSchoolYear.Text = "";
txtStudentID.Text = "";
txtFirstName.Text = "";
txtLastName.Text = "";
txtRevokedSchool.Text = "";
txtRevocationDate.Text = "";
chkbxlst1.Text = "";
txtNotes.Text = "";
}
}
}
}
}
?あなたはそう下記のようなリスト項目Cooperative Relationship
のText
プロパティにアンダースコアでスペースを置き換える最初に、問題を回避するために、パラメータ名@[Cooperative Relationship]
で、スペースの問題を抱えている
をごitem.textの一つは、おそらく空です。 ..デバッグして何が起こっているのかをパラメータとして見る... –
クエリのパラメータの数と置き換えるパラメータの数を 'AddWithValue'で数えたい場合があります... – VDWWD
@VDWWD、4つのチェックがすべてボックスがチェックされている場合、パラメータの数は良好です。チェックされているチェックボックスの数が4未満の場合、このエラーは発生しますか? (私が走ったとき、4つのチェックボックスすべてがチェックされ、すべてのデータフィールドにデータが入っていました) – JM1