不允许从数据类型 varchar 到 varbinary 的隐式转换。请使用 CONVERT 函数来运行此查询。


用户信息表(User)
字段 类型 默认值 说明
Uid Int  自增 用户标记
UserID Varchar(16) Not null 用户登陆ID
UserPwd Varchar(16) Not null 用户密码
Pwdqeustion Varchar Not null 用户密码提示
Pwdanswer Varchar Not null  密码答案
UserName varchar Not null 用户真实姓名
Company Varchar Not null  公司
Address Varchar Not null  地址
Post  Varchar Not null 邮政
PTel Int Null 手机
Tel Int  Not null 电话
VIP Int Not null VIP审核
Fax Int  Null 传真
Email varchar Null 邮箱
Website Varchar Null 网站
Content Varchar Null

  //接收url数据,并对数据进行过滤
                 string Pwdqeustion = Tools.StrConvert(context.Request.QueryString["Pwdqeustion"].ToString());
                 string Pwdanswer = Tools.StrConvert(context.Request.QueryString["Pwdanswer"].ToString());
                 string company = Tools.StrConvert(context.Request.QueryString["companyname"].ToString());
                 string Address = Tools.StrConvert(context.Request.QueryString["Address"].ToString());
                 string DD_class = Tools.StrConvert(context.Request.QueryString["companyclass"].ToString());
                 string Calling = Tools.StrConvert(context.Request.QueryString["Calling"].ToString());
                 string site = Tools.StrConvert(context.Request.QueryString["site"].ToString());
                 string tel = Tools.StrConvert(context.Request.QueryString["area"].ToString());
                 string fax = Tools.StrConvert(context.Request.QueryString["fax"].ToString());
                 string Pel = Tools.StrConvert(context.Request.QueryString["Pel"].ToString());
                string job = Tools.StrConvert(context.Request.QueryString["job"].ToString());
                 string Recommend = Tools.StrConvert(context.Request.QueryString["Recommend"].ToString());
                 string mail = context.Request.QueryString["mail"].ToString();
                string corporate =context.Request.QueryString["corporate"].ToString();

                 //加密密码 
                 string pass = context.Request.QueryString["pass"].ToString();
                
                int a=SqlDataAccess.InsertUser(name, pass, Pwdqeustion, Pwdanswer, job, company, Address, Pel, tel, fax, mail, site, Recommend, Calling, DD_class, corporate);//把注册的数据插入数据库
             
              //context.Response.Redirect("register.aspx?ID="+a);
                context.Response.Write(a.ToString());
                break;


过滤....
    public static string StrConvert(string strInput)
    {
        if ((strInput != null) && (strInput != ""))
        {
            //定义需要过滤的字符。
            string[,] immit ={ { "'", "’" }, { "%20", " " }, { "%24", " " }, { "%27", " " }, { "%3a", " " }, { "%3b", " " }, { "%3c", " " }, { ";", ";" }, { ":", ":" }, { "%", "%" }, { "--", "--" }, { "*", "*" }, { "\\", "、、" } };
            //遍历字符串,过滤掉需要过滤的字符
            for (int i = 0; i < (immit.Length / 2); i++)
            {
                strInput = strInput.Replace(immit[i, 0], immit[i, 1]);
            }
        }
        return strInput;//返回替换后的字符串
    }

注册语句

public static int InsertUser(string UserID, string UserPwd, string Pwdqeustion, string Pwdanswer, string UserName, string Company, string Address, string  PTel, string Tel, string Fax, string Email, string Website, string Content, string Callingclass, string companyclass, string corporate)
    {
        string sql = "insert into Users (UserID,UserPwd,Pwdqeustion,Pwdanswer,UserName,Company,Address,PTel,Tel,Fax,Email,Website,Content,Callingclass,companyclass,corporate) VALUES(";
        sql += "'" + UserID + "','" + UserPwd + "','" + Pwdqeustion + "','" + Pwdanswer + "','" + UserName + "','" + Company + "','" + Address + "','" + PTel + "' , '" + Tel + "','" + Fax + "','" + Email + "','" + Website + "','" + Content + "','" + Callingclass + "','" + companyclass + "','" + corporate + "')";
        SqlCommand cmd = new SqlCommand();
        using (SqlConnection conn = new SqlConnection(SqlHelper.ConnectionStringLocalTransaction))
        {
            int a = SqlHelper.ExecuteNonQuery(conn,CommandType.Text,sql,null);
            return a;
        }
        
    }

7 个解决方案

#1



晕...很急..分可以再加

#2


错误提示:不允许从数据类型 varchar 到 varbinary 的隐式转换。请使用 CONVERT 函数来运行此查询。 

#3


 string tel = Tools.StrConvert(context.Request.QueryString["area"].ToString()); 
                 string fax = Tools.StrConvert(context.Request.QueryString["fax"].ToString()); 
                 string Pel = Tools.StrConvert(context.Request.QueryString["Pel"].ToString()); 
-------------------------------------------------------------
 string  PTel, string Tel, string Fax
--------------------
PTel Int Null 手机 
Tel Int  Not null 电话 
VIP Int Not null VIP审核 
Fax Int  Null 传真 

以上字段是Int型,但传进来的却是varchar型
传进去的参数类型要与数据库相同,

#4


像这么多字段,最好使用参数的形式传进去

#5


和我的毛病一样,建表是把varchar 类型建成 varbinary类型了,
请重新检查您的表,varbinary类型的 改成varchar类型,就OK。

#6


strconvert 是什么?

#7


引用 5 楼 liubudeng 的回复:
和我的毛病一样,建表是把varchar 类型建成 varbinary类型了,
请重新检查您的表,varbinary类型的 改成varchar类型,就OK。


顶你!

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com