我一直在努力让我的SQL Server数据库与我的aspx项目一起工作。我为从webform文本字段读取数据的用户创建了一个表。但是,无论出于何种原因,它都会尝试将我的Users
表格id
列分配到我的网络项目中的第一个文本框中。我似乎无法想办法解决它。你能帮帮我吗?
CREATE TABLE [dbo].[Users]
(
[Id] INT NOT NULL PRIMARY KEY,
[Username] NVARCHAR(MAX) NULL,
[Password] NVARCHAR(MAX) NULL,
[Email] NVARCHAR(MAX) NULL,
[Name] NVARCHAR(MAX) NULL
)
在这里我分配来自webform的值:
SqlCommand cmd = new SqlCommand("insert into Users values('" + tbUname.Text + "','" + tbPass.Text + "','" + tbEmail.Text + "','" + tbName.Text + "','u')", con);
网络表单标记:
<div class="center-page">
<label class="col-xs-11">Username</label>
<div class="col-xs-11">
<asp:TextBox ID="tbUname" runat="server" CssClass="form-control" placeholder="Username"></asp:TextBox>
</div>
<label class="col-xs-11">Password</label>
<div class="col-xs-11">
<asp:TextBox ID="tbPass" runat="server" CssClass="form-control" placeholder="Password"></asp:TextBox>
</div>
<label class="col-xs-11">Confirm Password</label>
<div class="col-xs-11">
<asp:TextBox ID="tbCPass" runat="server" CssClass="form-control" placeholder="Confirm Password"></asp:TextBox>
</div>
<label class="col-xs-11">Name</label>
<div class="col-xs-11">
<asp:TextBox ID="tbName" runat="server" CssClass="form-control" placeholder="Name"></asp:TextBox>
</div>
<label class="col-xs-11">E-Mail</label>
<div class="col-xs-11">
<asp:TextBox ID="tbEmail" runat="server" CssClass="form-control" placeholder="Email"></asp:TextBox>
</div>
<br />
<br />
<br />
<div class="col-xs-11 space-vert">
<asp:Button ID="btSignup" runat="server" class="btn btn-success" Text="Sign Up" OnClick="btSignup_Click" />
</div>
</div>
答案 0 :(得分:2)
您只需要显式在INSERT
命令中指定要插入的列 - 如下所示:
INSERT INTO dbo.Users(Username, Password, Email, Name)
VALUES (@val1, @val2, @val3, @val4);
答案 1 :(得分:0)
你的ID fiels是自动增量的身份字段吗? 我认为这不是因为我没有看到你使用
IDENTITY(1,1)
在您的create table中,然后您需要在insert语句中使用它
INSERT INTO dbo.Users(Id,Username, Password, Email, Name)
VALUES (@val1, @val2, @val3, @val4,@val5);
答案 2 :(得分:0)
要解决此问题: 替换此查询...
SqlCommand cmd =新的SqlCommand(“插入用户值('” + tbUname.Text +“','” + tbPass.Text +“','” + tbEmail.Text +“','” + tbName。文字+“','u')”,con);
将这个放在这里
SqlCommand cmd =新的SqlCommand(“ INSERT INTO [dbo]。[Users]([Username],[Password],[Email],[Name])VALUES('” + tbUname.Text +“','” + tbPass.Text +“','” + tbEmail.Text +“','” + tbName.Text +“')”,con);