我有像这样的oledbconnection try-catch:
try
{
OleDbConnection Connection;
using (Connection = new OleDbConnection("Provider=MSDAORA.1;Data Source=DATABASE:1521/orcl//orcl1;Persist Security Info=True;Password=PASS;User ID=USER"))
{
Connection.Open();
v1 = 1;
Connection.Close();
}
}
catch (Exception)
{
v1 = 0;
}
Run Code Online (Sandbox Code Playgroud)
当我无法连接数据库时,请尝试捕获并返回v1 = 0.它正在工作但是当连接等待这么多时(例如30-40秒),尝试连接和页面等待这么多.
我试过Connect Timeout了oledbconnection,但不工作.
我需要尝试几秒钟,如果有任何问题,需要去抓.
我怎样才能做到这一点?
我开发了一个基于7 winform的应用程序.我的数据库在MS Access上.我想为连接字符串创建一个公共单个类,并在所有winforms中使用它.这样,我可以避免以所有形式复制和粘贴连接字符串.我不知道该怎么做.
只是一个普遍的问题,如果我在我的程序中打开OleDbConnection,我应该在某个时候关闭它吗?我只是问,因为我看过一些教程,其中演示者没有包含关闭连接的语句.
在我的具体情况下,我打开一个连接来访问Excel文件,填充DataTable并获取一些值.在那之后,我没有理由让连接打开,我想如果我把它打开就可能会引起一些问题.
此外,声明是否conn.Close();足以关闭连接?
我已经有了从.xls转换为.txt的代码.但问题是,它只导出一行并停止.我需要为代码添加什么来读取所有行并将其转换为txt文件?
这是我的代码如下:
using (OleDbConnection cn = new OleDbConnection())
{
using (OleDbCommand cmd = new OleDbCommand())
{
cn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"C:\Users\jediablaza\Documents\EDIExcel\EDIExcel.xls" + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";";
cmd.Connection = cn;
cmd.CommandText = "SELECT * from [Sheet1$]";
using (OleDbDataAdapter adp = new OleDbDataAdapter(cmd))
{
DataTable dt = new DataTable();
adp.Fill(dt);
using (StreamWriter wr = new StreamWriter(@"C:\Users\jediablaza\Documents\EDIExcel\EDIExcel.txt"))
{
foreach (DataRow row in dt.Rows)
{
wr.WriteLine(row[0] + "\t" + row[1] + "\t" + row[2] + "\t" + row[3] + "\t" + row[4]);
}
} …Run Code Online (Sandbox Code Playgroud) 在Python中,哪一个比其他的效率更高。我的要求是建立一个连接,直到我们关闭应用程序。
我有两个类,一个是建立和获取连接/光标,使用它我可以获取和获取Service中的数据。在python中跟随MVC :)
一个DBConnection类
import pyodbc
class Connection:
def getconnection(self):
conn = pyodbc.connect('Driver={SQL Server};Server=.\SQLEXPRESS;Database=School;Trusted_Connection=yes;')
print("Connection Established")
#cursor = conn.cursor()
return conn
def getcursor(self):
conn = pyodbc.connect('Driver={SQL Server};Server=.\SQLEXPRESS;Database=School;Trusted_Connection=yes;')
print("Connection Established")
cursor = conn.cursor()
return cursor
Run Code Online (Sandbox Code Playgroud)
和一个服务等级
import Connection
import pyodbc
class StudentDataService:
connection = Connection.Connection().getconnection()
cursor = Connection.Connection().getcursor()
def getstudentdata(self):
print("In method getStudentdata()")
try:
row = self.connection.execute('select * from StudentGrade')
studentList = list(row)
return studentList
except pyodbc.DatabaseError as err:
print("Error Occurred while fetching Student Records", err)
return None
finally:
self.connection.close()
def …Run Code Online (Sandbox Code Playgroud) 我需要打开一个现有的 Excel文件并用DataTable填充它。我怎样才能做到这一点?
我在 ASP.NET 工作
我已经尝试使用此解决方案(http://stackoverflow.com/questions/1746701/export-datatable-to-excel-file)创建一个 excel,然后我尝试使用这样的 OLEDB 连接打开它,但它没有用..它说表格格式不正确..然后它说我找不到ISAM文件..我不知道该怎么办..
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\reports\report.xls;Extended Properties=""Excel 8.0;HDR=No;IMEX=1""");
conn.Open();
System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand();
cmd.Connection = conn;
cmd.CommandText = @"SELECT * INTO [Excel 8.0;Database=C:\reports\reportBase.xls].[SheetBase1] FROM Sheet1]";
cmd.ExecuteNonQuery();
conn.Close();
Run Code Online (Sandbox Code Playgroud)
请帮我!!我很绝望!!
谢谢!!
在静态构造函数中,我检查是否可以打开与所有数据库的连接,然后保留ConnectionStrings的静态副本,然后在需要时使用它.
现在,如果我创造
private static List <OleDbConnection> _connections;
并将所有打开的连接存储为开放连接?在应用程序打开之前,我可以使用这些连接吗?这样做有什么害处吗?
我的任务是使用Access数据库并创建一个Excel文件,但我似乎无法创建 OleDb将使用的Excel文件.
Excel文件名将由运行该工具的工程师提供.Access数据库中的每个数据表都将成为Excel文件中的工作表.
现在,我有一个我无法克服的烦恼:如果Excel文件不存在,我无法创建它!
internal const string XL_FMT = "Provider=Microsoft.{0}.OLEDB.{1};Data Source={2};Mode=ReadWrite;Extended Properties=\"Excel {1};HDR={3};IMEX=1;\"";
internal DataTable tableNames;
internal OleDbConnection oleCon;
private string conStr;
public OleBase(string connectionString) {
conStr = connectionString;
// Using the debugger, conStr is:
// "Provider=Microsoft.ACE.OLEDB.12.0;" +
// "Data Source=C:\\Users\\cp-jpool\\Documents\\Ecat5.xlsx;" +
// "Mode=ReadWrite;Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=1;\""
object[] param = new object[] { null, null, null, "TABLE" };
oleCon = new OleDbConnection(conStr);
oleCon.Open();
tableNames = oleCon.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, param);
}
Run Code Online (Sandbox Code Playgroud)
如果Excel文件不存在,每当我调用时,Open()我都会得到以下OleDbException:
" Microsoft Access数据库引擎找不到对象'C:\ Users\cp-jpool\Documents\Ecat5.xlsx'.确保对象存在,并正确拼写其名称和路径名.如果'C:\ Users\cp-jpool\Documents\Ecat5.xlsx'不是本地对象,请检查您的网络连接或联系服务器管理员. "
所以,文件不存在,呵呵?好吧,我尝试通过修改我CTor()来创建它: …
我在Windows 2008服务器上安装了Microsoft Access数据库引擎2010可再发行组件http://www.microsoft.com/en-us/download/details.aspx?id=13255.但是,当我运行我的Web应用程序以将电子表格表导入数据库时.它抱怨错误消息 - "Microsoft.ACE.OLEDB.12.0未在本地计算机中注册."
我已经测试了我的代码并在我的Windows 7本地计算机上运行.任何的想法?
我正在使用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'对吗?或类似的东西.我无法得到它.