如何连接到用C#编写的.NET MVC Web应用程序的不同数据库?
这里数据库表的结构保持不变.所有更改都是数据库名称.那么如何手动连接数据库或使用修改连接字符串?
诀窍是使用相同的代码.根据URL,我希望从不同的数据库显示数据.因此,视图和控制器(几乎)在模型中具有单个代码.
-Datte
我在一些不使用连接池的旧Java Web应用程序中发生连接泄漏.试图找到泄漏很难,因为IT不会授予我访问v $ session的权限SELECT Count(*) FROM v$session;
所以我试图使用System.out语句进行调试.即使在conn.close();我将conn打印到系统日志文件时关闭连接,它也会为我提供连接对象名称.
try {
Connection conn;
conn.close()
}
catch (SQLException e) { }
finally {
if (conn != null) {
try {
System.out.println("Closing the connection");
conn.close();
}
catch (Exception ex)
{
System.out.println("Exception is " + ex);
}
}
}
// I then check conn and it is not null and I can print the object name.
if (conn != null) {
System.out.println("Connection is still open and is " + conn);
} …Run Code Online (Sandbox Code Playgroud) 这有点奇怪,但我想检查我的数据库的连接是否已经打开?我该如何检查?如果打开我希望能够直接使用它而不通过所有声明:
sqlconnection conn = new sqlconnection("string ...");
Run Code Online (Sandbox Code Playgroud)
可以这样做吗?我也知道连接字符串和连接名称.我想先检查此连接是否可用,然后继续.
c# sql-server database-connection sqlconnection visual-studio-2010
是否可以使用sql语句从存储过程连接到mysql服务器的远程实例,以进行选择和插入访问?
理想情况下,它会像(伪代码):
connect to remotedb@remotehost
select field1 from remotedb.table1 where ...
Run Code Online (Sandbox Code Playgroud)
我想我可以在C/C++中开发一个用户定义的函数,它通过ODBC来实现.不过,如果可能的话,我更喜欢原生语法.谢谢!
我无法理解一件事.假设我已经拥有这些编码实体:
[Table(Name = "Rates")]
public class Rate
{
private EntityRef<Product> _Product;
[Column(IsPrimaryKey = true)]
public String RateID
{ get; set; }
[Column]
public String ProductID
{ get; set; }
[Column]
public Double VolumeInTons
{ get; set; }
[Column]
public Decimal Volume
{ get; set; }
[Column]
public Decimal Cost
{ get; set; }
[Column]
public UInt32 Year
{ get; set; }
[Association(Storage = "_Product", OtherKey = "ProductID")]
public Product Product
{
get { return this._Product.Entity; }
set { this._Product.Entity = …Run Code Online (Sandbox Code Playgroud) 我正在使用SQL Server 2008作为后端的应用程序.在每天结束时,我备份数据库并将其恢复到我的笔记本电脑上,以便我可以在家继续开发.在这两种设置中,一切都运行良好,除了在本地计算机上运行的查询比我在工作时查询远程服务器时花费的时间要长得多(几秒钟到亚秒).
我按名称指定服务器并使用"." 连接到我的本地实例.该应用程序是使用集成安全性通过ADO连接的Excel VBA.
我不知道服务器的工作规格,但我认为它们比我的笔记本电脑更好,所以这可能解释了一些不同之处.但是,我的开发笔记本电脑是不错的(Windows 7,2.4GHz Core i5,64位,8GB RAM),此时数据库非常小.
为什么表现会如此显着不同?我应该在笔记本电脑上看一下如何提高性能?
编辑:事实证明,查询没有错.在我的笔记本电脑上往返服务器以获取数据需要花费更长的时间,我错误地认为这是查询,而实际上是连接.当我通过SSMS连接到数据库引擎时,在任一环境中都需要大约相同的时间,但是当我使用ADO进行连接时,连接就是本地更长的时间.知道什么会导致这种延迟吗?
我将Mitch的回复标记为答案(有助于排查查询时间和环境的差异),并将创建有关连接延迟的新问题.
更新:这是关于我在SE.DBAs上的问题的链接,关于localhost连接的可怕性能:https://dba.stackexchange.com/q/18231/2848
我使用Netbeans,做一个java应用程序.我在netbeans中使用Java DB创建了一个用于db连接的ConnectDB类.我启动了服务器,十个连接到db.当我运行它生成的文件
java.lang.ClassNotFoundException: org.apache.derby.jdbc.ClientDriver @ 25 line
Run Code Online (Sandbox Code Playgroud)
和
java.sql.SQLException: No suitable driver found for jdbc:derby://localhost:1527/Libraryprj;create=true
Run Code Online (Sandbox Code Playgroud)
@ 30行代码
代码如下
package Lms;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
/**
*
* @author JOJO
*/
public class ConnectDB {
static Connection conn;
public static void main(String[] args) {
String driver = "org.apache.derby.jdbc.ClientDriver";
String connectionURL = "jdbc:derby://localhost:1527/Libraryprj;create=true";
String createString = "CREATE TABLE Employee (NAME VARCHAR(32) NOT NULL, ADDRESS VARCHAR(50) NOT NULL)";
try {
Class.forName(driver);
} catch (java.lang.ClassNotFoundException e) {
e.printStackTrace(); …Run Code Online (Sandbox Code Playgroud) 我正在尝试BasicDataSource使用DBCP建立与Oracle数据库的连接.
我commons-dbcp-1.4-bin.zip从这里下载了.
类路径上有三个jar文件.
我正在使用以下代码建立连接.
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.apache.commons.dbcp.BasicDataSource;
public class DatabaseConnection {
private final static BasicDataSource BASIC_DATA_SOURCE = new BasicDataSource();
private final static String SQL = "SELECT * FROM admin WHERE login_id=? AND admin_pwd=?";
static {
BASIC_DATA_SOURCE.setDriverClassName("oracle.jdbc.OracleDriver");
BASIC_DATA_SOURCE.setUrl("jdbc:oracle:thin:@localhost:1521:xe");
BASIC_DATA_SOURCE.setUsername("wagafashiondb");
BASIC_DATA_SOURCE.setPassword("root");
}
private static Connection getConnection() throws SQLException {
return BASIC_DATA_SOURCE.getConnection();
}
public boolean exists(String userName, String password) throws SQLException {
Connection …Run Code Online (Sandbox Code Playgroud) 我正在尝试从Java与MQ建立连接。我正在使用来自IBM的以下示例代码,但是可能已经过时了。我该如何解决该问题/我缺少什么?
import com.ibm.mq.*; // Include the WebSphere MQ classes for Java package
import com.ibm.mq.jmqi.*;
import com.ibm.mq.constants.MQConstants;
public class MQSample
{
private String qManager = "your_Q_manager"; // define name of queue
// manager to connect to.
private MQQueueManager qMgr; // define a queue manager
// object
public static void main(String args[]) {
new MQSample();
}
public MQSample() {
try {
// Create a connection to the queue manager
qMgr = new MQQueueManager(qManager);
// Set up the options on the queue we …Run Code Online (Sandbox Code Playgroud) 我想将特定的表转储到我的远程服务器数据库中,效果很好,但是其中一个表是9m行,我得到:
Lost connection to MySQL server during query when dumping table `table_name` at row: 2002359
Run Code Online (Sandbox Code Playgroud)
因此,在在线阅读后,我了解到我需要增加我的max_allowed_packet,并有可能将其添加到我的命令中。
所以我运行以下命令来转储我的表:
mysqldump -uroot -h my.host -p'mypassword' --max_allowed_packet=512M db_name table_name | gzip > dump_test.sql.gz
Run Code Online (Sandbox Code Playgroud)
并且由于某种原因,我仍然得到:
Lost connection to MySQL server during query when dumping table `table_name` at row: 2602499
Run Code Online (Sandbox Code Playgroud)
难道我做错了什么?
它的记录很奇怪,只有900万条记录...不太大。
java ×4
c# ×3
database ×3
mysql ×2
sql-server ×2
.net ×1
asp.net-mvc ×1
derby ×1
ibm-mq ×1
javadb ×1
jms ×1
linq-to-sql ×1
oracle ×1
oracle10g ×1