http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 3268|回复: 1

[总群] 请教大家一个问题,ACCESS 默认的CODEPAGE 可以改吗?

[复制链接]
发表于 2013-6-14 10:23:01 | 显示全部楼层 |阅读模式
♂-穿越时空() 09:57:28
请教大家一个问题,ACCESS 默认的CODEPAGE 可以改吗?

♂-穿越时空() 09:59:41
我这里一个C#程序,连接SQL server 使用 绑定参数 没有问题, 连接ACCESS 就不行了, 目前搞不清楚ACCESS 的默认CODEPAGE

♂[石家庄]1234() 10:00:22
ACCESS用的是oledb
♂¤好孩子¤ () 10:00:25
连接字符串?

♂-穿越时空() 10:01:47
string SqlSelectCommand = "SELECT count(*) from [login_table] "
                        //+ " where ((username = @username) AND (password = @password))"
                        //+ " where ((username = '黄成') AND (password = @password))"
                        + " where ((username = @username) AND (password = '12345'))"
                        ;
                    //SqlSelectCommand = string.Format("select username from login_table "
                    //    + " where ((username = '{0}') AND (password = @password))",strUserName)
                    //    ;
                    cmd.CommandText = SqlSelectCommand;
                    OleDbParameter p1 = cmd.Parameters.Add("@password", OleDbType.VarChar, 50);
                    p1.Direction = ParameterDirection.Input;
                    p1.Value = strPassword;

                    OleDbParameter p2 = cmd.Parameters.Add("@username", OleDbType.VarChar, 50);
                    p2.Direction = ParameterDirection.Input;

♂-穿越时空() 10:01:58
不是连接问题

♂站长苏飞() 10:03:15
p1.Direction = ParameterDirection.Input;


♂站长苏飞() 10:03:22
这个不用加也

♂yipeilin() 10:04:30
0.jpeg

♂yipeilin() 10:04:53
怎么取不到PlaceHolder

♂yipeilin() 10:04:58
的值

♂-穿越时空() 10:06:03
string SqlSelectCommand = "SELECT count(*) from [login_table] " +
                        " where (username = @username AND password = @password)";
                    cmd.CommandText = SqlSelectCommand;
                    SqlParameter p1 = cmd.Parameters.Add("@password", SqlDbType.NVarChar, 50);
                    p1.Direction = ParameterDirection.Input;
                    p1.Value = strPassword;
                    SqlParameter p2 = cmd.Parameters.Add("@username", SqlDbType.NVarChar, 50);
                    p2.Direction = ParameterDirection.Input;
                    p2.Value = strUserName;

♂yipeilin() 10:07:47
1.jpeg 怎么取不到PlaceHolder的值

♂¤好孩子¤ () 10:08:47
cmd.Parameters.Add("@password",SqlDbType.NVarchar,50).Value=strPassword;
cmd.Parameters.Add("@username", SqlDbType.NVarChar, 50).Value=strUserName;
就行了,不用那么多


♂yipeilin() 10:09:24
2.jpeg 怎么取不到PlaceHolder的值  跪求解答

♂-穿越时空() 10:10:46
string SqlSelectCommand = "SELECT count(*) from [login_table] "
                        //+ " where ((username = @username) AND (password = @password))"
                        //+ " where ((username = '黄成') AND (password = @password))"
                        + " where ((username = @username) AND (password = '12345'))"
                        ;

♂-穿越时空() 10:10:58
加不加都不是主要问题

♂-穿越时空() 10:11:52
上面的语句,用中间的就可以成功string SqlSelectCommand = "SELECT count(*) from [login_table] "
                        + " where ((username = '黄成') AND (password = @password))"
                        ;


♂-穿越时空() 10:12:14
所以我断定是CODEPAGE问题

♂-穿越时空() 10:13:00
用户名是中文,密码是数字, 密码动态参数就成功

♂[电工]Lucker() 10:13:06
4.jpeg

♂-穿越时空() 10:14:20
SQL SERVER 默认的CODEPAGE 和 C# 都是UNICODE,所以 全部用动态参数都没有问题






1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2013-6-14 10:50:42 | 显示全部楼层
♂-穿越时空() 10:43:56
string SqlSelectCommand = "SELECT count(*) from [login_table] "
                        + " where ((username = @username) AND (password = @password))"
                        //+ " where ((username = '黄成') AND (password = @password))"
                        //+ " where ((username = @username) AND (password = '12345'))"
                        ;
                    //SqlSelectCommand = string.Format("select username from login_table "
                    //    + " where ((username = '{0}') AND (password = @password))",strUserName)
                    //    ;
                    cmd.CommandText = SqlSelectCommand;
                    OleDbParameter p2 = cmd.Parameters.Add("@username", OleDbType.VarWChar, 50);
                    p2.Direction = ParameterDirection.Input;

                    OleDbParameter p1 = cmd.Parameters.Add("@password", OleDbType.VarWChar, 50);
                    p1.Direction = ParameterDirection.Input;
                    p1.Value = strPassword;



♂-穿越时空() 10:44:38
总算解决问题了,既然是参数顺序不一致导致的错误,

♂-穿越时空() 10:45:17
加入参数的顺序一定要和SQL 语句一致



您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-5-15 22:00

© 2014-2021

快速回复 返回顶部 返回列表