Access2003用C#更新数据库时,如果前面有多个0,保存到数据库中只有一个0,小弟我在数据库中设置的是文本格式。大神有遇到过的么
Access2003用C#更新数据库时,如果前面有多个0,保存到数据库中只有一个0,我在数据库中设置的是文本格式。大神有遇到过的么?
代码如下:
string query_sql = @"update 用户信息 set 口令=" + tB_code1.Text + @" where 用户名=@用户名";
try
{
conn.Open();//打开数据库,建立连接
OleDbCommand cmd = new OleDbCommand();//实例化 Command对象
cmd.Connection = conn;//关联Connection对象,建立数据库连接
cmd.CommandText = query_sql;//这句必须指定,没有这句,查询操作将无法进行 将sql语句赋值给CommandText属性
cmd.Parameters.AddWithValue("@用户名", f_sysSet.tB_User.Text);
cmd.Parameters.AddWithValue("@口令", tB_code1.Text);
//cmd.Parameters.Add("@用户名", OleDbType.Variant).Value = f_sysSet.tB_User.Text;
//cmd.Parameters.Add("@口令", OleDbType.Variant).Value = tB_code1.Text;
int i = cmd.ExecuteNonQuery();
if (i > 0)//密码正确
{
MessageBox.Show("口令修改成功!");
}
else//密码错误
{
MessageBox.Show("口令修改失败!");
}
如果我在控件里输入000,那么保存到数据库里的就是0
大虾们怎么解决?
------解决方案--------------------
string query_sql = @"update 用户信息 set 口令='" + tB_code1.Text + @"' where 用户名=@用户名";
试试
------解决方案--------------------
截取输入字符的第一位看他是不是0呗
------解决方案--------------------
你如果是access数据库。字段用的文本的话
OleDbType.Variant=》改为OleDbType.VarWChar
http://blog.163.com/modingfa_002/blog/static/1109254662010157214121/
Access数据类型与.net OleDbType枚举类型的对应
http://blog.****.net/tangzhongxin/article/details/4630699
代码如下:
string query_sql = @"update 用户信息 set 口令=" + tB_code1.Text + @" where 用户名=@用户名";
try
{
conn.Open();//打开数据库,建立连接
OleDbCommand cmd = new OleDbCommand();//实例化 Command对象
cmd.Connection = conn;//关联Connection对象,建立数据库连接
cmd.CommandText = query_sql;//这句必须指定,没有这句,查询操作将无法进行 将sql语句赋值给CommandText属性
cmd.Parameters.AddWithValue("@用户名", f_sysSet.tB_User.Text);
cmd.Parameters.AddWithValue("@口令", tB_code1.Text);
//cmd.Parameters.Add("@用户名", OleDbType.Variant).Value = f_sysSet.tB_User.Text;
//cmd.Parameters.Add("@口令", OleDbType.Variant).Value = tB_code1.Text;
int i = cmd.ExecuteNonQuery();
if (i > 0)//密码正确
{
MessageBox.Show("口令修改成功!");
}
else//密码错误
{
MessageBox.Show("口令修改失败!");
}
如果我在控件里输入000,那么保存到数据库里的就是0
大虾们怎么解决?
------解决方案--------------------
string query_sql = @"update 用户信息 set 口令='" + tB_code1.Text + @"' where 用户名=@用户名";
试试
------解决方案--------------------
截取输入字符的第一位看他是不是0呗
------解决方案--------------------
你如果是access数据库。字段用的文本的话
OleDbType.Variant=》改为OleDbType.VarWChar
http://blog.163.com/modingfa_002/blog/static/1109254662010157214121/
Access数据类型与.net OleDbType枚举类型的对应
http://blog.****.net/tangzhongxin/article/details/4630699