嗨,我在用C#编写程序时遇到了很多麻烦
我必须连接到SQLANYWHERE 11并更新表
你能告诉我哪里错了吗?
程序运行良好,直到我达到: 整数= wCommand.ExecuteNonQuery();线 该程序不会崩溃,但表未更新
string dns = "Dsn=dattest;Uid=******;Pwd=******;";
OdbcDataReader reader;
OdbcCommand wCommand;
ODBCClass dst1 = new ODBCClass(dns);
queryins = "UPDATE dba.Sala_export_dati_macchina_produzione SET stato='p'";
// +"WHERE id_prd_lav_ord_lav='"+ id_prd_lav_ord_lav + "'";
wCommand = dst1.GetCommand(queryins);
int number = wCommand.ExecuteNonQuery();
Console.WriteLine("executed "+ number);
这是我正在使用的odbc类
public class ODBCClass
{
OdbcConnection oConnection;
OdbcCommand oCommand;
public ODBCClass(string DataSourceName)
{
oConnection = new OdbcConnection(DataSourceName);
try
{
oConnection.Open();
System.Diagnostics.Trace.WriteLine("Connessione stabilita con il database " + DataSourceName);
}
catch (OdbcException caught)
{
System.Diagnostics.Trace.WriteLine(caught.Message);
}
}
public void CloseConnection()
{
oConnection.Close();
}
public OdbcCommand GetCommand(string Query)
{
oCommand = new OdbcCommand
{
Connection = oConnection,
CommandText = Query
};
return oCommand;
}
public void Dispose()
{
oConnection.Close();
}
}
编辑
以防万一我尝试使用此模式更改连接字符串:
@"Driver={SQL Anywhere 11};DatabaseName=my_db_name;EngineName=my_server_name;uid=username;pwd=password;LINKs=tcpip(host=host_ip_address)"
在两种情况下,系统始终不会给我错误连接
答案 0 :(得分:0)
好家伙,有点奇怪。
让我解释一下整个事情。我正在为一个客户设计该程序,该客户要求一个可以链接我的mysql数据库和另一家公司的sybase数据库的软件。
问题是该公司的DBMS在服务器上打开时会阻止对与其连接的数据库的所有外部编辑。
因此,选择查询正常进行,但更新和插入被该客户端阻止... 我已经过了整整四天的工作计划,但是那家公司没有告诉我这件“小事”。
因此请注意DBMS是残酷的。