标题:[求助]SQL为什么只能保存第一个字符?
只看楼主
delyex
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-7-31
 问题点数:0 回复次数:3 
[求助]SQL为什么只能保存第一个字符?

麻烦大侠帮个忙
我用的是VS.net 03和sql server2000,用存储过程保存数据是为什么只能保存textbox里面的第一个字符?
比如像下图填好表单,提交后


查看数据库中对应列只保存每一格textbox里的第一个字符


这个是怎么回事?

存储过程:
CREATE procedure useradd
@UID varchar,
@UPassword varchar,
@UQuestion nvarchar,
@UAnswer nvarchar,
@USex bit,
@UCityID int,
@Email varchar
AS
insert into Users(UID, UPassword, UQuestion, UAnswer, UPower, USex, UCityID, Email)values
(@UID,
@UPassword,
@UQuestion,
@UAnswer,
2,
@USex,
@UCityID,
@Email)

调用:
cm.Parameters.Add("@UID", SqlDbType.VarChar);
cm.Parameters.Add("@UPassword", SqlDbType.VarChar);
cm.Parameters.Add("@UQuestion", SqlDbType.VarChar);
cm.Parameters.Add("@UAnswer", SqlDbType.VarChar);
cm.Parameters.Add("@USex", SqlDbType.Bit);
cm.Parameters.Add("@UCityID", SqlDbType.Int);
cm.Parameters.Add("@Email", SqlDbType.VarChar);

cm.Parameters["@UID"].Value = tbx_uid.Text;
cm.Parameters["@UPassword"].Value = tbx_password.Text;
cm.Parameters["@UQuestion"].Value = tbx_uquestion.Text;
cm.Parameters["@UAnswer"].Value = tbx_uanswer.Text;
if(rtn_male.Checked)
cm.Parameters["@USex"].Value = 1;
else
cm.Parameters["@USex"].Value = 0;
cm.Parameters["@UCityID"].Value = ddl_ucityid.SelectedItem.Value;
cm.Parameters["@Email"].Value = tbx_uemail.Text;
cm.ExecuteNonQuery();

[此贴子已经被作者于2006-7-31 0:40:05编辑过]

搜索更多相关主题的帖子: SQL 字符 保存 
2006-07-31 00:31
boxou
Rank: 1
等 级:新手上路
帖 子:135
专家分:0
注 册:2006-4-28
得分:0 
把 cm.Parameters.Add("@UID", SqlDbType.VarChar);
cm.Parameters.Add("@UPassword", SqlDbType.VarChar);
cm.Parameters.Add("@UQuestion", SqlDbType.VarChar);
cm.Parameters.Add("@UAnswer", SqlDbType.VarChar);
cm.Parameters.Add("@USex", SqlDbType.Bit);
cm.Parameters.Add("@UCityID", SqlDbType.Int);
cm.Parameters.Add("@Email", SqlDbType.VarChar);

改成: cm.Parameters.Add("@UID", SqlDbType.VarChar,20);
cm.Parameters.Add("@UPassword", SqlDbType.VarChar,20);
cm.Parameters.Add("@UQuestion", SqlDbType.VarChar,20);
cm.Parameters.Add("@UAnswer", SqlDbType.VarChar,20);
cm.Parameters.Add("@USex", SqlDbType.Bit);
cm.Parameters.Add("@UCityID", SqlDbType.Int);
cm.Parameters.Add("@Email", SqlDbType.VarChar,20);


孔夫子说:博学、审问、慎思、明辩、力行[欢迎各位加入爱好者群:25620461]
2006-07-31 15:57
delyex
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-7-31
得分:0 
麻烦了,不过不行……还是只能保存第一个字符
2006-07-31 19:03
delyex
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-7-31
得分:0 
原来如此,问题在存储过程上,定义存储过程的时候没定义每列元素的大小,多谢提醒!!!
2006-07-31 19:40



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-81132-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040526 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved