防止在OLEDBCommand查询中打开Excel表
我正在WPF中使用C#.将数据拉到数据台上.一切都可以正常工作,直到我更改为使用foreach(工作簿中的工作表)循环的实际工作表名称. 现在我有了实际的工作表名称,并将其包含在我的OLEDBCommand中,屏幕上的工作表打开了. 我想防止/阻止excel文件在屏幕上打开,因为它不需要或不需要. 下面是具有命令和查询的连接字符串和try/catch的开头. string con_string = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fullFilePath + ";Extended Properties='Excel 12.0 Xml;HDR=Yes'"; try { OleDbConnection con = new OleDbConnection(con_string); con.Open(); //OleDbCommand ocon = new OleDbComma
0 2024-04-26
编程技术问答社区
创建带有参数的表
我想使用OleDb创建一个Excel表: OleDbCommand oleDbCommand = new OleDbCommand(); oleDbCommand.Connection = oleDbConnection; String commandText = "CREATE TABLE" + " [" + sheetModel.Sheet.Name + "] "; commandText += "("; for (int index = 0; index
18 2024-04-26
编程技术问答社区
使用OLEDB连接选择Excel工作表的使用范围
有什么方法可以通过OLEDB命令对象选择使用的Excel表范围? 因为我有一个具有400行的Excel文件,但是当我删除200行并尝试再次选择表格时,它将再次选择多达400行,而不是选择200行.这是我为选择表的代码: oledbConn = new OleDbConnection(connectionString); oledbCmd = new OleDbCommand("select * from [Sheet1$]", oledbConn); oledbConn.Open(); oledbDr = oledbCmd.ExecuteReader(); while(oledbDr.Read()) { } 解决方案 afaik您可以通过两种方式进行此操作: 首先. 在OLEDBCommand中写一个简单的SQL选择.目前,您正在选择Excel中的所有行. 您从文档中删除200行的事实可能无济于事,因为它仍然选择那些空行. 样本:
12 2024-04-26
编程技术问答社区
当我试图更新我的访问数据库中的记录时,我得到了一个错误
我有一个连接到访问数据库的小程序,我要做的就是通过编辑表单更新(编辑)选定的记录.执行代码时,我会收到此错误: System.Data.OleDb.OleDbException was unhandled Message=Syntax error (missing operator) in query expression '5346 S. Eubank blvd'. Source=Microsoft Access Database Engine ErrorCode=-2147217900 不必说,这是用于地址字段的. 这是我的代码块: private void saveChangeBtn_Click(object sender, EventArgs e) { Customer.SetCustID(Convert.ToInt32(editIdTB.Text)); Customer.SetFirstName(editFirstNameTB.
10 2024-04-25
编程技术问答社区
在OleDbCommand中使用"...where Column like ... "不能工作
我正在使用c#从访问中选择一些东西(我相信2003或2007)数据库,但没有选择任何内容.我在访问本身中尝试了SQL语法,似乎可以正常工作.我是C#和访问的新手. 到目前为止我拥有的东西: OleDbCommand command = new OleDbCommand("Select * from Lid Where Naam Like @naam order by RangID desc, Creatiedatum, Naam", connection); command.Parameters.Add(new OleDbParameter("@naam", "*" + naam + "*")); 我尝试了一些变体,使用%而不是 *,将其戴在第一行而不是在参数等上.但是到目前为止似乎没有任何作用.我找不到谷歌搜索的解决方案,也许我只是不知道谷歌谷歌,就像我之前所说的那样,我对C#和Access and访问. 解决方案 使用OLEDB,您绝对需要%而不是*作为通配符
2 2024-04-17
编程技术问答社区
表达式中未定义的函数'Replace',Replace替代?
如在此问题中阅读的那样: expression 中的未定义'replent' 'm获取错误"未定义函数"在表达式中'替换'因为"您根本不使用访问查询引擎",但是我将如何用作替代方案?显然是" IIF,仪器的组合"会起作用,但我找不到一种实际替换这些东西的方法. 我想要的只是从价值中删除空间,我该怎么做? const string strSql = "SELECT TOP 15 HOOFDGROEP.HOOFDGROEP, SUBGROEP.SUBGROEP, Artikels.*" + " FROM (Artikels LEFT JOIN HOOFDGROEP ON Artikels.HOOFDGROEPID = HOOFDGROEP.ID)" + " LEFT JOIN SUBGROEP ON Artikels.SUBGROEPID = S
2 2024-04-14
编程技术问答社区
插入到访问数据库中
我很难将数据从文本框中插入MS Access数据库,我会收到一个错误" Syntax error in INSERT INTO." 有人可以帮我吗?这是代码: public void button1_Click(object sender, EventArgs e)//save { using (OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\productdb.mdb")) { OleDbCommand CmdSql = new OleDbCommand("Insert into [product](Kod, names, price,type,volume,manufacturer,importer) enter code here { conn.Open(); CmdSql.Parameters.
2 2024-04-12
编程技术问答社区
数据库命令对象的参数顺序真的很重要吗?
我正在调试数据库操作代码,我发现尽管代码从未这样失败,但从未发生过适当的更新.这是代码: condb.Open(); OleDbCommand dbcom = new OleDbCommand("UPDATE Word SET word=?,sentence=?,mp3=? WHERE id=? AND exercise_id=?", condb); dbcom.Parameters.AddWithValue("id", wd.ID); dbcom.Parameters.AddWithValue("exercise_id", wd.ExID); dbcom.Parameters.AddWithValue("word", wd.Name); dbcom.Parameters.AddWithValue("sentence", wd.Sentence); dbcom.Param
12 2024-04-11
编程技术问答社区
OleDbParameters和参数名称
我有一个我正在通过OLEDB执行的SQL语句,该语句是这样的: INSERT INTO mytable (name, dept) VALUES (@name, @dept); 我正在向OLEDBCommand添加参数: OleDbCommand Command = new OleDbCommand(); Command.Connection = Connection; OleDbParameter Parameter1 = new OleDbParameter(); Parameter1.OleDbType = OleDbType.VarChar; Parameter1.ParamterName = "@name"; Parameter1.Value = "Bob"; OleDbParameter Parameter2 = new OleDbParameter(); Parameter2.OleDbType = OleDbType.VarChar; Parameter
16 2024-04-10
编程技术问答社区
将图像存储到Access数据库的附件字段中
我正在编写一个VB应用程序,我需要在数据库中存储图像.用户在其计算机上选择图像,这使我可以将路径作为字符串.这是我的尝试,但是我会遇到错误:"插入查询中的插件不能包含多值字段." 这是我的代码: Dim buff As Byte() = Nothing Public Function ReadByteArrayFromFile(ByVal fileName As String) As Byte() Dim fs As New FileStream(fileName, FileMode.Open, FileAccess.Read) Dim br As New BinaryReader(fs) Dim numBytes As Long = New FileInfo(fileName).Length buff = br.ReadBytes(CInt(numBytes)) Return buff End Function Sub ....
10 2024-03-18
编程技术问答社区
OleDB更新命令没有改变数据
我将Microsoft Access File用作数据库.我对SELECT和INSERT查询没有问题,但是当我尝试UPDATE时,数据库中的记录不会更改. 以下是我用于运行更新的代码.调试日志中没有例外或错误. cnn = new OleDbConnection(connetionString); OleDbCommand command = new OleDbCommand("UPDATE [Wpisy] SET [wpis]=@wpis, [id_kat]=@id_kat, [tytul]=@tytul WHERE [ID]=@id_wpis" , cnn); command.Parameters.Add(new OleDbParameter("@wpis", tresc_wpisu.Text)); command.Parameters.Add(new OleDbParameter("@id_kat", lista_kategorii.S
12 2024-03-08
编程技术问答社区
SSIS中的别名参数
我正在使用SSIS中的OLE DB命令,SQL命令看起来像这样: UPDATE DBO.CLIENT SET TimeZoneID = ?, DaylightSavingTime = ?, ModifiedBy = ?, MicrosPropertyID = ?, IsOffline = ?, GlobalReporting_MaskPatronNumberType = ?, GlobalReporting_PatronNumberReadableCharacters = ?, GlobalReporting_MaskPrimaryCardType = ?, GlobalReporting_PrimaryCardReadableCharacters = ?, BICAddedDateTime = ?, BICUpdatedDateTime = ?, IsDBInDailyBoardRat
38 2024-01-23
编程技术问答社区
如何在.NET中使用SQL用户定义函数?
我在db 中创建了标量函数 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER FUNCTION [dbo].[fn_GetUserId_Username] ( @Username varchar(32) ) RETURNS int AS BEGIN DECLARE @UserId int SELECT @UserId = UserId FROM [User] WHERE Username = @Username RETURN @UserId END 现在我想在.net c#或vb.net代码中运行它. 我使用实体框架,尝试使用功能映射将其映射,但我没有成功. 我不在乎用简单的dbcommand做到这一点,问题是我没有得到结果(实体类中的功能存在): public int GetUserIdByUsername(string username) {
40 2024-01-03
编程技术问答社区
在OleDbCommand中添加一个where子句
我正在尝试在以下代码行中添加一个子句. 原因是因为我从下拉combobox中获取数据.现在,我想在用户名上过滤该表,以便只有用户才能看到其记录. 我需要有关如何在此代码中写入Where子句的帮助. 如果您需要更多信息,我会很高兴添加它. 谢谢您的任何帮助. OleDbCommand cmd = new OleDbCommand(String.Concat("Select * From ", comboBox1.Text), con); 评论后 我添加了SQL注入保护. OleDbCommand cmd = new OleDbCommand(String.Concat("Select * From @Companydetails where Research_ID = @Researcher_ID"), con); cmd.Parameters.AddWithValue("@Companydetails", comboBox
10 2023-12-03
编程技术问答社区
当ExecuteReader出现 "Parameter?_1 has no default value "错误时
Web服务中的代码有问题.搜索了一个解决方案,但我所看到的任何东西似乎与我在下面做的事情有所不同. nb:字符串变量'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 OrderH
34 2023-11-14
编程技术问答社区
使用vb.net将MS Access行插入数据库
因此,我试图将字段添加到数据库中.它是.mdb数据库,Microsoft访问. 表的名称是联系人. Dim con As New OleDb.OleDbConnection Dim dbProvider As String Dim dbSource As String Dim ds As New DataSet Dim da As OleDb.OleDbDataAdapter Dim sql As String dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;" dbSource = "Data Source= C:\Users\Owner\Desktop\Contacts.mdb" con.ConnectionString = dbProvider & dbSource con.Open() sql = "INSERT INTO Contac
26 2023-11-14
编程技术问答社区
在嵌套表中包括RowId值
我试图使用ole db命令从oracle调用函数,我的连接正确设置了,但我认为我的调用该函数的语法不正确? EXEC UPDATE_PERSON ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? output 我已经在SQL存储的PROC上使用了此方法进行测试,并且它已经起作用. Oracal连接是第三方,他们刚刚提供了功能名称和预期参数.我应该得到1个返回参数. 错误: Error at Data Flow Task [OLE DB Command [3013]]: SSIS Error Code DTS_E_OLEDBERROR. AN OLE DB error has occurred. Error code 0x80040e14. An OLE DB record is available. Source: "Microsoft OLE DB Provider for Oracle" Hresult:
30 2023-09-27
编程技术问答社区
OLE DB命令中存储过程的SSIS返回值
我正在使用已经存在的存储过程插入必须插入的数据.存储的过程具有插入行的ID的参数和一个ID的返回值.在SSIS中的OLE DB命令中,我可以将存储过程传递列值作为参数,并且通常在存储过程上使用输出参数来处理" ID"输出;但是我不确定如何使用返回值来处理此过程,当过程使用选择以返回ID值.这是我以前使用过的示例 exec dbo.uspInsertContactAddress @Address = ?, @ContactID = ?, @DeliveryMethodId = ?, @ID = ? output, @Version = ? output 解决方案 我发现我可以做到这一点,这实际上很简单: exec ? = dbo.StoredProc @param = ?, @param2 = ? ,然后将出现一个@return_value出现在可用的目标列 其他解决方案 不要在SQLCommand属性中使用变量名,只是问号和输出参数的" OUT"或"输出"标签.
16 2023-09-27
编程技术问答社区
SSIS-使用OLE DB命令更新表
我需要在SSIS中翻译下一个SQL查询:(每个表属于其他源-SQL Server&Oracle) update A set A.col1 = B.col1 A.col2 = B.col1 from table A inner join table B B on A.col3 = Col3 where A.col4 = value 1 and A.col5 = value2 and B.col4 = value 3; 您可以看到,源和目标对应于相同的来源:表A.这是我创建的工作流程. 有条件拆分后,我使用了派生的列来复制B.Col1列以在OLE DB命令上使用它以更新表A的列 之后,我在OLE DB命令任务中写下了下一个查询: update Table A set col1 = ? col2 = ? 但是,在这一点上,我有一个问题,我是否仅更新从条件拆分中获得的子集的值,还是我更新了所有表A.此外,更新查询的最后一部分使参考B和OLE DB命令任务,我只能引用一个
22 2023-09-27
编程技术问答社区
我如何将许多SQL查询作为事务来做?
我一直在做 delete , update , insert , 在学校数据库中选择 .问题在于它可以同时进行一个查询.这样的东西: OleDbConnection con = DAL.GetConnection(); con.Open(); if (con.State == ConnectionState.Open) //si la conexion esta abierta... { string sql = string.Format(" INSERT INTO lol (...)"); //----->I shortened this above because it's not important
44 2023-09-20
编程技术问答社区