Anu*_*ain 0 c# sql sql-server asp.net
我将值插入数据库时出现此错误.我已经在SQL Sever Management Studio中将身份规范属性设置为ON,但我仍然遇到此错误.我也试过这种方式SET IDENTITY_INSERT Student ON,在我的SQL命令中添加这一行,但它没有运行.
Default.aspx.cs:
protected void btnsubmit_Click1(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(@"Data Source=INAFFFP1IT004W\MYSQL;Initial Catalog=test;User ID=sa;Password=test@1234;");
con.Open();
string SId = tbid.Text;
string FirstName = tbfirstname.Text;
string LastName = tblastname.Text;
string StartDate = tbstart.Text;
string EndDate = tbend.Text;
using (SqlCommand cmd = con.CreateCommand())
{
cmd.CommandText = "insert into Student(SId,FirstName,LastName,StartDate,EndDate) values('" + SId + "','" + FirstName + "','" + LastName + "','" + StartDate + "','" + EndDate + "')";
cmd.Parameters.AddWithValue("@SId", tbid.Text);
cmd.Parameters.AddWithValue("@FirstName", tbfirstname.Text);
cmd.Parameters.AddWithValue("@LastName", tblastname.Text);
cmd.Parameters.AddWithValue("@StartDate", tbstart.Text);
cmd.Parameters.AddWithValue("@EndDate", tbend.Text);
cmd.ExecuteNonQuery();
}
con.Close();
tbid.Text = "";
tbfirstname.Text = "";
tblastname.Text = "";
tbstart.Text = "";
tbend.Text = "";
tbid.Focus();
}
**Default.aspx**:
<head runat="server">
<script type="text/javascript">
window.onload = function () {
new JsDatePick({
useMode: 2,
target: "tbstart",
dateFormat: "%M/%d/%Y"
});
new JsDatePick({
useMode: 2,
target: "tbend",
dateFormat: "%M/%d/%Y"
});
};
</script>
<title></title>
<style type="text/css">
.style1
{
width: 64px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
<table cellpadding="2" cellspacing="5">
<tr>
<td>
<asp:Label ID="lblId" runat="server" Text="SId"></asp:Label>
</td>
<td>
<asp:TextBox ID="tbid" runat="server"></asp:TextBox>
</td>
<td class="style1">
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblname" runat="server" Text="FirstName"></asp:Label>
</td>
<td>
<asp:TextBox ID="tbfirstname" runat="server"></asp:TextBox>
</td>
<td class="style1">
</td>
</tr>
<tr>
<td>
<asp:Label ID="lbllastname" runat="server" Text="LastName"></asp:Label>
</td>
<td>
<asp:TextBox ID="tblastname" runat="server"></asp:TextBox>
</td>
<td class="style1">
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblstart" runat="server" Text="StartDate"></asp:Label>
</td>
<td>
<asp:TextBox ID="tbstart" runat="server"></asp:TextBox>
</td>
<td class="style1">
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblend" runat="server" Text="EndDate"></asp:Label>
</td>
<td>
<asp:TextBox ID="tbend" runat="server"></asp:TextBox>
</td>
<td class="style1">
</td>
</tr>
<tr>
<td>
<asp:Button ID="btnupdate" runat="server" onclick="btnupdate_Click"
Text="Update" Width="63px" />
</td>
<td>
<asp:Button ID="btnsubmit" runat="server" Text="Submit"
onclick="btnsubmit_Click1" Width="102px" />
</td>
<td class="style1">
<asp:Button ID="btnsearch" runat="server" onclick="Button1_Click" Text="Search" />
</td>
</tr>
</table>
<br />
</form>
</body>
Run Code Online (Sandbox Code Playgroud)
SQL命令
SET IDENTITY_INSERT <table> ON
Run Code Online (Sandbox Code Playgroud)
有一个会话范围.您需要将此包含在您在C#代码中发送到数据库的查询中.
请注意,您只能拥有一个带有identity_insert的表.MSDN:
在任何时候,会话中只有一个表可以将IDENTITY_INSERT属性设置为ON.如果某个表已将此属性设置为ON,并且为另一个表发出了SET IDENTITY_INSERT ON语句,则Microsoft®SQLServer™将返回一条错误消息,指出SET IDENTITY_INSERT已经为ON并报告其设置为ON的表.