我用下面的代码保存了用户编辑的内容,代码没有给我任何错误代码,但同时它没有做任何事情,数据仍然没有任何新的变化:
Dim a As String
a = comb3.Text & "/" & comb2.Text & "/" & comb1.Text
Dim SavInto As New OleDb.OleDbCommand
Dim ConStr As String = _
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & _
Application.StartupPath & "\base.mdb"
Dim Conn As New OleDbConnection(ConStr)
Conn.Open()
SavInto.Connection = Conn
SavInto.CommandType = CommandType.Text
SavInto.CommandText = "UPDATE tb SET Tasalsol = '" & _
Trim(frm.tx1.Text) & _
"' , anomber = '" & Trim(frm.TextBox2.Text) & _
"' , nam= '" & Trim(frm.tx3.Text) & _
"' , …Run Code Online (Sandbox Code Playgroud) 没有可用的错误消息,结果代码:E_UNEXPECTED(0x8000FFFF).
我无法通过谷歌找到任何解决方案.在解析excel文件时遇到这个问题.有谁知道为什么会发生这种情况?它会很好,如果它允许我从错误中恢复,但它甚至通过try catch和finally子句并使我的程序无用!
这是我昨天问的一个更详细的问题:
我正在尝试使用SQL和OleDB编写程序,并且在程序运行时出现错误.程序首先计算表中的行数(访问表称为'tblCodons'),并将数字存储为j中的整数.
然后程序将所有行(来自名为'codonsFullName'的特定列)存储在comboBox1中.代码在下面我得到这个错误:System.Data.OleDb.OleDbException(0x80040E14):无效的SQL语句;必需的值'DELETE','INSERT','PROCEDURE','SELECT'或'UPDATE
代码:
int j=0;
OleDbConnection conn1 = new OleDbConnection(connectionString);
conn1.Open();
string sqlCount= "SET @j= SELECT COUNT(tblCodons.codonsFullName) FROM tblCodons";
OleDbCommand counter = new OleDbCommand(sqlCount, conn1);
counter.ExecuteNonQuery();
conn1.Close();
OleDbConnection conn2 = new OleDbConnection(connectionString);
conn2.Open();
string sqlFill = "SELECT tblCodons.codonsFullName FROM tblCodons";
OleDbCommand fill = new OleDbCommand(sqlFill, conn2);
fill.ExecuteNonQuery();
OleDbDataReader dataReader = fill.ExecuteReader();
dataReader.Read();
for (int i = 0; i < j; i++)
{
comboBox1.Items.Add(dataReader.GetString(i));
}
Run Code Online (Sandbox Code Playgroud) 我没有为OleDbConnection,MySqlConnection,OdbcConnection和Db2Connection维护一些不同的数据库访问层,而是试图找出一种使用泛型的方法.但是,当我尝试编译代码时出现错误,当我尝试访问类的方法或属性时出错.
public class DatabaseConnector<CONNECTION> {
private CONNECTION connection = default(CONNECTION);
public bool IsConnected {
get {
return (
this.connection != null &&
// error on connection.State on the following two lines
this.connection.State != System.Data.ConnectionState.Closed &&
this.connection.State != System.Data.ConnectionState.Broken
);
}
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法解决?或者也许是另一个可以处理许多版本的类?
所以我正在研究数据库程序,它需要使用INSERT INTO命令将Log插入数据库,但是在执行查询后表仍然为空.请帮忙!谢谢〜这是代码.
//Predefined connection string
OleDbConnection vcon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\xxx\Desktop\data.mdb;Jet OLEDB:Database Password=xxx;");
private void Login_Load(object sender, EventArgs e)
{
Log("StartUp", "System", "NULL", "System StartUp");
}
public void Log(string Type, string User, string Table_affected, string Remarks)
{
string NowDateStamp = string.Format("{0}/{1}/{2}",
DateTime.Now.Day.ToString(),
DateTime.Now.Month.ToString(),
DateTime.Now.Year.ToString());
string NowTimeStamp = string.Format("{0}:{1}:{2}",
DateTime.Now.Hour.ToString(),
DateTime.Now.Minute.ToString(),
DateTime.Now.Second.ToString());
string tempSQL = string.Format("INSERT INTO 'Log' VALUES ('{0}', '{1}', '{2}', '{3}', '{4}', '{5}')",
NowDateStamp,
NowTimeStamp,
Type,
User,
Table_affected,
Remarks);
vcon.Open();
OleDbCommand vcom = new OleDbCommand(tempSQL, vcon);
vcom.ExecuteNonQuery();
MessageBox.Show("Done"); // …Run Code Online (Sandbox Code Playgroud) 我试图使用OleDb连接用excel文件中的数据填充数据表,但是我收到以下错误:"找不到可安装的ISAM".
任何帮助将非常感激.
我试过其他类似错误帖子的建议无济于事.
string cnStr = @"Provider=Microsoft.ACE.OLEDB.12.0;'C:\Users\Nick\Documents\Visual Studio 2010\Projects\ExcelTest1\ExcelTest1\CapitalPlan.xlsx';Extended Properties=" + "\"Excel 12.0 Xml;HDR=YES;IMEX=1\"";
DataTable dt = new DataTable();
`string sql = "Select * From [Sheet1$]";`
`using (OleDbConnection cn = new OleDbConnection(cnStr))
{
using (OleDbDataAdapter adapter = new OleDbDataAdapter(sql, cn))
{
adapter.Fill(dt);
}
}`
Run Code Online (Sandbox Code Playgroud)

Web服务中的以下代码有问题。寻找了解决方案,但是我所看到的似乎与我在下面所做的没什么不同。
注意:字符串变量'AccountNo'被传递到包含以下代码的函数中。
该错误在代码的最后一行-ExecuteReader上生成。
Dim sConnString As String
Dim rdr As OleDbDataReader
Dim orderPaid As Decimal
Dim fbeused As Decimal
sConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='c:\orders.mdb'"
Dim conn As New OleDbConnection(sConnString)
Dim sb As New StringBuilder
sb.Append("SELECT DISTINCTROW OrderHeaders.Accountno, Sum(([paidqty]*[unitprice])*[orderheaders].[entpercent]/100) AS orderpaid, Sum([freeqty]*[unitprice]) AS fbeused")
sb.Append(" FROM OrderHeaders INNER JOIN OrderDetails ON OrderHeaders.[OrderNo] = OrderDetails.[OrderNo]")
sb.Append(" GROUP BY OrderHeaders.Accountno HAVING OrderHeaders.Accountno=?")
Dim sqlString As String = sb.ToString
Dim cmd As New OleDbCommand(sqlString, conn)
cmd.CommandType = CommandType.Text
'cmd.Parameters.AddWithValue("AccNo", AccountNo)
cmd.Parameters.Add("AccNo", OleDbType.VarWChar).Value = AccountNo
conn.Open() …Run Code Online (Sandbox Code Playgroud) 我正在使用OleDBCommand在我的Excel工作表中选择一些数据.我有一列有数据列表(列J),之后的每列(列K-AG)根据关系有1或0.所以它基本上是用1或0绘制的图形.我想使用SQL命令来选择J列中的每个条目,其中在我选择的列中绘制了1.例如,假设我想查看J到K列的关系.然后我想从J中提取所有数据,其中J和K列为1.我不确定如何在SQL中指定列.我目前:
OleDbCommand command = new OleDbCommand("select * from [Master$J0:J20] , connection);
Run Code Online (Sandbox Code Playgroud)
之后我需要一个WHERE子句来指定,其中K0:K20 ='1'对吗?或类似的东西.我无法得到它.
public void EditUser(string id, string userid, string email, string password)
{
try
{
_dbConn.Open();
OleDbCommand updateCmd = new OleDbCommand("UPDATE LOGINS SET Username=?, Password=?, Email=? WHERE ID=?", _dbConn);
OleDbParameter param1 = new OleDbParameter("Username", userid);
OleDbParameter param2 = new OleDbParameter("Password", password);
OleDbParameter param3 = new OleDbParameter("Email", email);
OleDbParameter param4 = new OleDbParameter("ID", id);
param1.DbType = DbType.AnsiString;
param1.Direction = ParameterDirection.Input;
param2.DbType = DbType.AnsiString;
param2.Direction = ParameterDirection.Input;
param3.DbType = DbType.AnsiString;
param3.Direction = ParameterDirection.Input;
param4.DbType = DbType.AnsiString;
param4.Direction = ParameterDirection.Input;
updateCmd.Parameters.Add(param1);
updateCmd.Parameters.Add(param2);
updateCmd.Parameters.Add(param3);
updateCmd.Parameters.Add(param4);
int …Run Code Online (Sandbox Code Playgroud) 我在我的窗口表单应用程序中使用my_database.accdb作为数据库...我想在我的客户端计算机上安装它而不安装ms office.How我能实现这一点.我在我的c#应用程序中使用OleDb作为连接器.