新增一条记录,错在哪里????
SqlCommand MyCommand = new SqlCommand("INSERT INTO a (username,password) value ( @username,@password)",MyConnection);
MyConnection.Open();
MyCommand.Parameters.Add(new SqlParameter("@username", SqlDbType.NVarChar, 50));
MyCommand.Parameters["@username"].Value = UserName.Text;
MyCommand.Parameters.Add(new SqlParameter("@password", SqlDbType.NVarChar, 50));
MyCommand.Parameters["@username"].Value = PassWord.Text;
try
{
MyCommand.ExecuteNonQuery();
Response.Write("新增成功!");
}
catch
{
Response.Write("程序出错了!");
}
MyConnection.Close();
一直报程序出错?
问题点数:10、回复次数:25Top
1 楼xiahouwen(武眉博<活靶子.NET>)回复于 2004-08-01 17:25:51 得分 0
username,password是关键字
使用[]扩起来试试
[username],[password]Top
2 楼china165()回复于 2004-08-01 17:29:18 得分 0
INSERT INTO a ([username],[password]) value ( @username,@password)
这样吗?我试了一下,还是不行呀.Top
3 楼china165()回复于 2004-08-01 17:54:22 得分 0
同志们,顶一下!Top
4 楼zjwzh()回复于 2004-08-01 18:03:59 得分 1
value 改成valuesTop
5 楼fly_miss(新年新气象)回复于 2004-08-01 18:09:21 得分 1
Sql语法错误, Insert tableName() values ()Top
6 楼china165()回复于 2004-08-01 18:18:24 得分 0
还是报错啊,555Top
7 楼pingnt(淡蓝色的雪)回复于 2004-08-01 18:21:11 得分 0
报什么错啊,贴出来看看兄弟!Top
8 楼xiangyanpijiu(aKa在咆哮在学习.net)回复于 2004-08-01 18:21:24 得分 1
value 改成values
Top
9 楼china165()回复于 2004-08-01 18:25:41 得分 0
就是提示
Response.Write("程序出错了!");
我改了啊Top
10 楼woxing()回复于 2004-08-01 18:37:43 得分 1
MyCommand.Parameters.Add(new SqlParameter("@password", SqlDbType.NVarChar, 50));
MyCommand.Parameters["@username"].Value = PassWord.Text;
@username 改为 @password
Top
11 楼pingnt(淡蓝色的雪)回复于 2004-08-01 18:38:40 得分 0
先将你的Try...catch..语句去掉,再将出错提示贴出来..Top
12 楼accpyy(小小鸟儿)回复于 2004-08-01 18:42:09 得分 1
这个参数错了
MyCommand.Parameters["@username"].Value = PassWord.Text;
修改为
MyCommand.Parameters["@password"].Value = PassWord.Text;Top
13 楼liuvb(LHR)回复于 2004-08-01 18:51:03 得分 1
同意楼上
MyCommand.Parameters.Add(new SqlParameter("@password", SqlDbType.NVarChar, 50));
下面一句有错,把usernaem改成password试一下
MyCommand.Parameters["@username"].Value = PassWord.Text;Top
14 楼liuwei6102(大海)回复于 2004-08-01 19:54:33 得分 0
来了就说一句话吧
我也同意楼上的Top
15 楼china165()回复于 2004-08-01 20:58:14 得分 0
对!
楼上的都对了,
再问一个问题,怎么样用这个方法判断用户名已存在?
大家帮我解答一下,分数我会加上去的.Top
16 楼exing(铱星)回复于 2004-08-01 22:23:39 得分 1
用sqlcommande.ExecuteScalar 方法,看是否有返回值Top
17 楼dudu8686(飞飞)回复于 2004-08-01 23:37:33 得分 1
SqlCommand MyCommand = new SqlClient.SqlCommand("INSERT INTO a (username,password) value ( @username,@password)",MyConnection);
加上SqlClient.Top
18 楼dudu8686(飞飞)回复于 2004-08-01 23:41:17 得分 1
objCom.Parameters.Add("@JiaoYuan_Email", sqldbType.Char, 20).Value =session("Email")
一部到位,不要分两步!
类型和长度要和数据库的定义一样!Top
19 楼dudu8686(飞飞)回复于 2004-08-01 23:46:10 得分 1
Dim nwindConn As SqlConnection = New SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;")
Dim addEmp As SqlCommand = New SqlCommand("INSERT INTO Employees (LastName, FirstName, Title, HireDate, ReportsTo, Photo) " & _
"Values(@LastName, @FirstName, @Title, @HireDate, @ReportsTo, 0x0);" & _
"SELECT @Identity = SCOPE_IDENTITY();" & _
"SELECT @Pointer = TEXTPTR(Photo) FROM Employees WHERE EmployeeID = @Identity", nwindConn)
addEmp.Parameters.Add("@LastName", SqlDbType.NVarChar, 20).Value = lastName
addEmp.Parameters.Add("@FirstName", SqlDbType.NVarChar, 10).Value = firstName
addEmp.Parameters.Add("@Title", SqlDbType.NVarChar, 30).Value = title
addEmp.Parameters.Add("@HireDate", SqlDbType.DateTime).Value = hireDate
addEmp.Parameters.Add("@ReportsTo", SqlDbType.Int).Value = reportsTo
nwindConn.Open()
addEmp.ExecuteNonQuery()
nwindConn.Close()
Top
20 楼china165()回复于 2004-08-02 08:26:56 得分 0
OK,上面的问题,昨天已解决了,我后面的问题是,在此基础上如何判断用户名已存在?Top
21 楼luxel(小蓝鸟)回复于 2004-08-02 08:35:42 得分 0
select COUNT(*) from a where [username]=@username ,返回>0则已经有了
建议楼主把插入用户写成一个存储过程,并在存储过程里判断用户名是否存在,然后用一定的返回值表示操作是否成功
例如:
if exists (select * from a where [username]=@username )
return 1
insert....
return 0Top
22 楼china165()回复于 2004-08-02 08:51:18 得分 0
OK,我还没搞存储过程呢,今天试一试,大家还有其他方法吗?Top
23 楼vzxq(灵感人)回复于 2004-08-02 09:46:23 得分 0
CREATE PROCEDURE user_login
@u_name varchar(20),
@u_password varchar(20),
@u_state int output
AS
select * from admin_user
where
User_name=@u_name
and
User_password=@u_password
IF @@Rowcount < 1
SELECT @u_state =0
else
Select @u_state=1
GOTop
24 楼china165()回复于 2004-08-02 10:03:54 得分 0
如果在插入数据时,还要从别的表里取出一个字段值,加到这个存储过程里,如何实现?
也就是多一个用户字段.Top
25 楼china165()回复于 2004-08-02 12:53:21 得分 0
顶一下.Top




