c# windows窗体(添加信息以访问数据库)[关闭]

Posted

技术标签:

【中文标题】c# windows窗体(添加信息以访问数据库)[关闭]【英文标题】:c# windows form ( adding information to access data base ) [closed] 【发布时间】:2019-02-28 14:04:46 【问题描述】:

我正在尝试向数据库添加信息,但总是出错这是我现在的代码

 public partial class User : Form


    public OleDbConnection conect = new OleDbConnection();
    public User()
    
        InitializeComponent();
        conect.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Mhamad\Desktop\form\Item.mdb;
                                        Persist Security Info=False;";
    


    private void User_Load(object sender, EventArgs e)
    
        try
        
            conect.Open();
            OleDbCommand command = new OleDbCommand();
            command.Connection = conect;
            command.CommandText = "select * from Item ";

            OleDbDataReader reader = command.ExecuteReader();
            while (reader.Read())
            
                combo.Items.Add(reader["Item_Name"].ToString());

            
            conect.Close();

        
        catch (Exception ex)
        
            MessageBox.Show("Error" + ex);
        
    

    private void combo_SelectedIndexChanged(object sender, EventArgs e)
    

        try
        
            conect.Open();
            OleDbCommand command = new OleDbCommand();
            command.Connection = conect;
            command.CommandText = "select * from Item where Item_Name='"+combo.Text+"'";

            OleDbDataReader reader = command.ExecuteReader();
            while (reader.Read())
            
                item_id.Text = reader["Item_ID"].ToString();

                Price.Text = reader["Item_Price"].ToString();
            
            conect.Close();

        
        catch(Exception ex)
        
            MessageBox.Show("Error" + ex);
        
    

    private void Buy_Click(object sender, EventArgs e)
    
        try
        
            conect.Open();
            OleDbCommand command = new OleDbCommand();
            command.Connection = conect;
            command.CommandText = "insert into Admin_Items ([Item_Name],[Price]) value('" + combo.Text + "','" + Price.Text + "')";

            MessageBox.Show("Success");
            command.ExecuteNonQuery();
        
        catch (Exception ex)
        
            MessageBox.Show("Error" +ex);
        

所以这是我现在的代码,当我尝试将信息添加到数据库时,总是给我这个错误Error code 这是我的数据库database pic 我使用该代码为我的注册表单插入数据,并且没有问题 我想将组合框中显示的项目和价格添加到数据库之后,我想将该数据库链接到要显示的管理表单 但我现在被困在这里 这是错误代码 System.Data.OleDb.OleDbException:'找不到输出表'Admin_Items'。' 从代码 command.ExecuteNonQuery();

【问题讨论】:

在插入查询中应该是 VALUES,而不是 ... VALUE (... ... 我强烈建议您使用参数而不是连接 SQL 语句的值。 Exploits Of A Mom. @Filburt 我也改了,现在还是不行:(谢谢 除了“不起作用”之外,您还需要给我们更多的帮助。调试并检查插入语句 - 如果您仍然收到 SQL 语法错误,我们需要查看发送到数据库的内容。 @Filburt 将是初学者,这是我的拼贴项目,我不知道该提供更多内容,实际上我给出了错误,并且代码以及数据库都已连接并且可以正常工作,其他表单可以正常工作但没有问题我不知道为什么会出现这个错误 【参考方案1】:

您应该编辑插入查询

   cmd.CommandType = CommandType.Text; 
   cmd.CommandText = "insert into Admin_Items (Item_Name ,Price) values (@item, @price)";
   cmd.Parameters.AddWithValue("@item", combo.Text);
   cmd.Parameters.AddWithValue("@price", Price.Text); 

希望会成功

看看this

【讨论】:

没用 :( 但是谢谢 :) 编辑@MhamadAras 我将 cmd 更改为 command 但它没有工作它说错误在 command.ExecuteNonQuery(); 已编辑,重试 @MhamadAras 告诉我们“它不起作用”是没有用的。给我们错误信息。使用更新的代码更新您的问题。

以上是关于c# windows窗体(添加信息以访问数据库)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 窗体应用程序 C# 中以编辑模式将值绑定到组合框

什么是最佳选择,Windows 窗体或 C# 中的 WPF 开发?

急求C#窗体操作VSTO如何向word模板中的特定文本框添加图文信息

具有 Ms 访问权限的 C# Windows 窗体应用程序无法插入数据

在 C# windows 窗体中的树视图中面临问题,详细信息如下:

按图片中的要求用C#写代码!!QQ邮箱785615068@qq.com