尝试插入 mysql 数据库时出错? [英] errors trying to insert into mysql database?

查看:56
本文介绍了尝试插入 mysql 数据库时出错?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我尝试添加到数据库时出现未处理的错误?OdbcParameterCollection 只接受非空的 OdbcParameter 类型对象,不接受 String 对象.

Unhandled error when I try to add to database? The OdbcParameterCollection only accepts non-null OdbcParameter type objects, not String objects.

    protected void Button1_Click(object sender, EventArgs e)
    {

    string email = TextBox1.Text; //added variable name
    string firstname = TextBox2.Text;
    string secondname = TextBox3.Text;
    string dob = TextBox4.Text;
    string location = TextBox5.Text;
    string aboutme = TextBox6.Text;

    OdbcConnection cn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Database=gymwebsite; User=root; Password=;");
    cn.Open();
    OdbcCommand cmd = new OdbcCommand("INSERT INTO User (Email, FirstName, SecondName, DOB, Location, Aboutme) VALUES (email, firstname, secondname, dob, location, aboutme)"); // fixed incomplete insert statement.

        cmd.Parameters.Add(email);
        cmd.Parameters.Add(firstname);
        cmd.Parameters.Add(secondname);
        cmd.Parameters.Add(dob);
        cmd.Parameters.Add(location);
        cmd.Parameters.Add(aboutme);//add the parameter to the command
        cmd.ExecuteNonQuery(); //actually run the sql


    }

}

我试过了,但出现错误 System.InvalidOperationException: ExecuteNonQuery: Connection property has not been initialized.

I tryed this but I get the error System.InvalidOperationException: ExecuteNonQuery: Connection property has not been initialized.

我还更改了数据库,因此它不是 NN(非空),看看它是否有帮助但没有乐趣

I also changed the database so it wasnt NN (non-null) to see if it would help but no joy

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data.Odbc;

public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {

    string email = TextBox1.Text; //added variable name
    string firstname = TextBox2.Text;
    string secondname = TextBox3.Text;
    string dob = TextBox4.Text;
    string location = TextBox5.Text;
    string aboutme = TextBox6.Text;

    OdbcConnection cn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Database=gymwebsite; User=root; Password=;");
    cn.Open();
    OdbcCommand cmd = new OdbcCommand("INSERT INTO User(Email) VALUES('?Email')");



    cmd.Parameters.Add(new OdbcParameter("?email", email));
    cmd.ExecuteNonQuery();


    }

}

数据库中的数据是大写字母,如'L'ocation,我的字符串设置为小写.不确定它是否在我的代码中从后到前?

The data in the database is capital letters like 'L'ocation and my strings are set to lower case. Not sure if its back to front in my code tho?

-- -----------------------------------------------------

-- Table `gymwebsite`.`User`

-- -----------------------------------------------------

CREATE  TABLE IF NOT EXISTS `gymwebsite`.`User` (

  `UserID` INT NOT NULL AUTO_INCREMENT ,

  `Email` VARCHAR(245) NULL ,

  `FirstName` VARCHAR(45) NULL ,

  `SecondName` VARCHAR(45) NULL ,

  `DOB` VARCHAR(15) NULL ,

  `Location` VARCHAR(45) NULL ,

  `Aboutme` VARCHAR(245) NULL ,

  PRIMARY KEY (`UserID`) )

ENGINE = InnoDB;

INSERT INTO `gymwebsite`.`user`
(`UserID`,
`Email`,
`FirstName`,
`SecondName`,
`DOB`,
`Location`,
`Aboutme`)
VALUES
(
{UserID: INT},
{Email: VARCHAR},
{FirstName: VARCHAR},
{SecondName: VARCHAR},
{DOB: VARCHAR},
{Location: VARCHAR},
{Aboutme: VARCHAR}
);
EDIT `gymwebsite`.`user`;

推荐答案

使用这个

OdbcCommand cmd = new OdbcCommand("INSERT INTO User (Email, FirstName, SecondName, DOB, Location, Aboutme) VALUES ("+ email +","+ firstname+","+SecondName+","+DOB+","+Location+","+Aboutme+")",cn); 

尝试使用我之前发布的参数播放并使其正常工作.

Try to play using parameters..that i posted earlier and have it working.

问候

这篇关于尝试插入 mysql 数据库时出错?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆