首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c# OledbException被处理错误

c# OledbException被处理错误
EN

Stack Overflow用户
提问于 2011-11-10 19:19:06
回答 1查看 1.6K关注 0票数 0

我尝试了大量可能的方法,但都没有效果,现在我有了"OledbException是未处理的“,而尝试捕捉并抛出异常。请告诉我谢谢!

(假设新的数据输入都是字符串,而不是整数)。

代码语言:javascript
复制
public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }

    private void Form2_Load(object sender, EventArgs e)
    {

    }

    private void button1_Click(object sender, EventArgs e)
    {
        //connect to database
        string strOleDbConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Project.mdb";
        OleDbConnection objConnection = new OleDbConnection(strOleDbConnectionString);

        objConnection.Open();
        string newTagID = textBox1.Text;
        string newUser = textBox2.Text;
        string newAge = textBox3.Text;
        string newPhoneNumber = textBox4.Text;

        string InsertNewRecord = "INSERT INTO jiahe ([Tag ID], [User], [Age], [Phone Number]) VALUES ('" + newTagID + "', '" + newUser + "', '" + newAge + "', '" + newPhoneNumber + "')";
        OleDbCommand InsertCommand = new OleDbCommand(InsertNewRecord, objConnection);

        try
        {
            InsertCommand.Parameters.Add("@[Tag ID]", newTagID);
            InsertCommand.Parameters.Add("@[User]", newUser);
            InsertCommand.Parameters.Add("@[Age]", newAge);
            InsertCommand.Parameters.Add("@[Phone Number]", newPhoneNumber);
            InsertCommand.ExecuteNonQuery();

            MessageBox.Show("Record Added!");
        }

        catch (OleDbException ex)
        {
            throw ex;
        }

        finally
        {
            objConnection.Close();
        }
    }
}

}

EN

回答 1

Stack Overflow用户

发布于 2011-11-10 19:27:30

你的问题是:为什么你要得到"OledbException是未处理的“。

因此,对你的问题(但不是你的问题)的答案是,你正在重新抛出一个异常抛出。而不是那样做,做如下的事情:

代码语言:javascript
复制
 MessageBox.Show(ex.ToString());

这将告诉您代码背后的真正错误是什么,并且您已经处理了异常。

oleDBException可能会出现,因为您应该使用以下方法来定义SQL命令:

代码语言:javascript
复制
 string InsertNewRecord = "INSERT INTO jiahe ([Tag ID], [User], [Age], [Phone Number]) VALUES (?newTagID, ?newUser, ?newAge,?newPhoneNumber)";

然后,其余代码将设置这些参数,用实际值替换命令中的@xxx。AddParameter将添加引号,因此不必添加引号。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8085066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档