返回首页

我做一个网站,使用SQLServer2005数据库ASP.NET和C#,而我
插入到数据库中的数据,数据类型varchar转换为数字显示错误的错误。一段时间显示错误数据类型varchar转换为字符串。
我没有收到,我错了。
我的代码是:

try

        {

            string ID = GenerateId("new_user", "user_id", 7, "CRN-");

            SqlCommand cmd=new SqlCommand("insert into new_user values('"+ ID +"','"+ txtname.Text.ToLower().Trim() +"','"+ txtcompany.Text.ToLower().Trim() +"','"+ txtdesig.Text.ToLower().Trim() +"','"+ txtcontact.Text.Trim() +"','"+ txtemail.Text.ToLower().Trim() +"','"+ txtadd.Text.ToLower().Trim() +"')",con );

            cmd.CommandType = CommandType.Text;

            con.Open();

            cmd.ExecuteNonQuery();

            string n1 = "";

            string c1 = "";

            string d1 = "";

            string p1 = "";

            string e1 = "";

            string a1 = "";

            string n2 = txtname.Text;

            string c2 = txtcompany.Text;

            string d2 = txtdesig.Text;

            string p2 = txtcontact.Text;

            string e2 = txtemail.Text;

            string a2 = txtadd.Text;

            SqlDataReader r2 = cmd.ExecuteReader();

            while (r2.Read())

            {

                n1 = r2.GetString(0);

                c1 = r2.GetString(1);

                d1 = r2.GetString(2);

                p1 = r2.GetString(3);

                e1 = r2.GetString(4);

                a1 = r2.GetString(5);

           if (n2 == n1 && c2 == c1 && d2 == d1 && p2 == p1 && e2 == e1 && a2 == a1)

                {

                    flag = true;

                    Response.Write("Record Already Exist");

                    break;

                }

            }

            

            con.Close();

}

        catch (Exception ex)

        {

            Response.Write(ex.Message);

        }

其中ID是自动生成的,我为它的功能。我将提供它同时需要。
请帮我......:7861155 |会员

回答

评论会员:游客 时间:2012/02/06
生成的ID是字符串类型,如果是你需要转换使用其类型转换函数转换为varchar()的编号,我希望它的工作原理
Muralikrishna8811
评论会员:游客 时间:2012/02/06
嗨,检查你的数据库表的定义和一件事是在代码中的断点,然后跟踪了,这个错误。并检查你的价值观,在运行时,如果有任何字符串类型的值传递给batatable列被声明为int,然后error'll提高。删除"为int类型的值。最佳
Jayesh Goyani:请提供你的表结构或列的数据类型,这样我们就可以找出问题



请提供全面详细的错误
评论会员:游客 时间:2012/02/06
OriginalGriff:不指定列名,当您插入到表中的值,因此它很可能是你在错误的顺序插入数据-总是指定的列名,当您插入。:{C}否则,你只是假设,数据库定义bnotchnaged的,可以插入到德错列或错列顺序。这可能会导致你的问题。此外,从未连接字符串建立一个SQL命令。离开你敞开意外或蓄意的SQL注入攻击可以摧毁你的整个数据库。使用参数化查询
devildx2050:在后端使用铸铁(标识为varchar)我觉得它的工作原理...