Tag: ms access

将记录添加到Access数据库时“INSERT INTO语句中的语法错误”

我已经搜索了几个小时来解决这个问题,但我读过的内容并没有帮助。 尝试将此记录添加到Access数据库时,我收到此错误。 我正在尝试保存的文件名为Cats.accdb,其中包含一个名为Cats的表。 表列名称 : CatId(类型:文字) CatName(文字) 头发(文字) 尺寸(文字) CareType(文字) 备注(文字) AdoptDate(日期/时间一般日期),权重(double),年龄(整数)(我已经在C#代码中注释了对这些列的任何引用,试图用简单的旧文本框进行调试。起初我以为是因为与使用DateTimePicker有关,但是在注释掉后仍然会抛出错误。) C#代码 : Cat temp = new Cat(txtCatName.Text, txtHair.Text, txtSize.Text, txtCareType.Text, txtNotes.Text); public string AddCat() { string strFeedback = “”; string strSQL = “INSERT INTO Cats (CatName, Hair, Size, CareType, Notes) VALUES (@CatName, @Hair, @Size, @CareType, @Notes)”; OleDbConnection conn = new OleDbConnection(); string strConn […]

Access Database error ::“没有给出一个或多个必需参数的值。”

我有一个datagridview。 在该DGV中,第一柱是combobox柱。 我想,当选择这个combobox值时,下一个fild将自动从数据库中填充。 但是显示出错误。 没有为OleDbDataReader上的一个或多个必需参数赋值dr1 = cmd1.ExecuteReader(); 我发布了代码。 请帮我。 OleDbConnection con = new OleDbConnection(conn); con.Open(); for (int i = 0; i < dgv.Rows.Count; i++) { string query = "select Description from General where AccCode='" + dgv.Rows[i].Cells[0].Value + "' and conpanyID='" + label1.Text + "'"; OleDbCommand cmd1 = new OleDbCommand(query, con); //OleDbDataAdapter daBranchName = new OleDbDataAdapter(cmd); […]

C#SQL SUM值到标签

我目前有一个显示所有项目的DataGridView。 我想在价格列中汇总所有价格,然后在标签“TotalValueLabel”中反映总价。 我的陈述有什么问题? string query = “SELECT SUM (Price) FROM Bill”; OleDbDataAdapter dAdapter = new OleDbDataAdapter(query, DBconn); DataTable source = new DataTable(); dAdapter.Fill(source); TotalValueLabel.Text = source.ToString();

使用OLE-DB从数据库中读取附加文件

我正在尝试使用C#读取Microsoft Access数据库。 我正在使用OLE-DB类。 问题是这段代码 OleDbDataReader reader = Command.ExecuteReader(); while (reader.Read()) { Console.WriteLine(reader.GetFieldType(0) + “\t” + reader.GetFieldType(1) + “\t” + reader.GetFieldType(2) + “\t” + reader.GetFieldType(3) + “\t” + reader.GetFieldType(4) + “\t” + reader.GetFieldType(5)); } 告诉我,第5个字段来自数据类型字符串。 但它是一个附件。 当我试图读取这个字符串时,它是空的。 System.Int32 System.String System.String System.Int32 System.DateTime System.String 有没有办法从数据库中读取附件?

从MS Access转换OLE图像对象以在.NET中使用

我正在努力将基于Access的系统重新开发到c#.net,但是当MS从办公室2003到办公室2007时,他们删除了访问中的图片编辑器 – 这意味着之前存储的图片将不再显示在系统中。 该公司的人做了一个黑客,基本上使用excel在后台保存图像(如果你需要,我可以获得更多信息)但基本上它意味着仍然可以使用访问图像控件(对象绑定帧)。 但是,我现在遇到了尝试在.NET应用程序中显示这些问题的问题,经过无数天尝试操作字节数组的不同方法后,我接近放弃了。 我尝试了至少8个不同的建议解决方案,每个解决方案在执行Image.fromStream()时以“参数未识别”exception结束。 下面是迄今为止让我最接近的代码: private void imageExtractTest() { LogOnDataSetTableAdapters.QueriesTableAdapter qa = new LogOnDataSetTableAdapters.QueriesTableAdapter(); object docO = qa.GetLogonImage(); if (docO == null || !(docO is byte[])) { return; } byte[] doc = (byte[])docO; MemoryStream ms = new MemoryStream(); ms.Write(doc, 0, doc.Length); int firstByte; int secondByte; ms.Seek(0, SeekOrigin.Begin); firstByte = ms.ReadByte(); secondByte = ms.ReadByte(); […]

使用OleDbParameter在Access中插入日期/时间值

我正在尝试在oledb(ms访问数据库)中进行插入,名为objectdate的字段是日期/时间 我用来添加参数的代码就是这个,但是我收到了错误。 OleDbParameter objectdate = new OleDbParameter(“@objectdate”, OleDbType.DBDate); objectdate.Value = DateTime.Now; cmd.Parameters.Add(objectdate); 错误: 条件表达式中的数据类型不匹配。

持久安全信息Property = true且Persist Security Info Property = false

对于属性: Persist Security Info=true 和 Persist Security Info=false 你能告诉我他们之间有什么区别吗?如果我不把它放在我的连接中会发生什么? connect.ConnectionString = “Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:/Users/Nourah/Downloads /Phase3/Salary.accdb; Persist Security Info=False;”;

使用C#或SQL复制Access表结构和约束

有人能告诉我如何使用.NET或SQL复制MS Access表的表结构及其所有约束,键等吗? 我已经搜索并找到了许多复制列和类型的方法,但我还需要提供约束,例如主键。 我有一个包含一堆表的数据库,我需要用新名称创建(仅结构)副本。 这需要在C#应用程序中执行,但我不在乎是否使用ADO或SQL完成,只要我能找到方法。 任何提示将非常感谢。

在Access 2010中存储字节

这么简单的任务: 如何在Access 2010中存储Byte []? (整天都在网上搜索这个。) 我必须在访问2010中使用“附件字段”,因为据我所知,没有其他可能的(varBinary,Image,..)字段可用。 我试过:(ConvertImageToByte返回一个Byte []) Cmd.CommandText = “UPDATE Clubs SET Field1 = @File WHERE Name = @Name”; OleDbParameter para = new OleDbParameter(“@File”, OleDbType.VarBinary); para.Value = ConvertImageToByte(Logo); Cmd.ExecuteNonQuery(); 例外:“UPDATE或DELETE查询不能包含多值字段。” 我试过了: DBEngine dbe = new DBEngine(); Database db = dbe.OpenDatabase(“database.accdb”, false, false, “”); String Command = “SELECT * FROM Clubs”; Recordset rs = db.OpenRecordset(Command, […]

检查是否已安装MS Access 2010

我正在维护一个应用程序,该应用程序当前正在检查是否已安装MS Access 2007。 它通过validation注册表项是否存在来实现此目的。 public bool IsAccess2007Installed() { RegistryKey rootKey = Registry.ClassesRoot.OpenSubKey(@”Access.Application.12\shell\open\command”, false); return rootKey != null; } 我该如何validation是否安装了MS Access 2010? 或者更好的是,我如何validation是否安装了MS Access 2007或更高版本? 假设用户具有管理员权限。