c#odbc更新查询无法正常工作
嗨,我正在用c语言编写一个程序# 我必须连接到SQLANYWHERE 11并对表进行更新 你能告诉我哪里错了吗 计划进展顺利,直到我达到以下目标: int number=wCommand.ExecuteNonQuery();线 程序不会崩溃,但表不会更新c#odbc更新查询无法正常工作,c#,sql-update,odbc,C#,Sql Update,Odbc,嗨,我正在用c语言编写一个程序# 我必须连接到SQLANYWHERE 11并对表进行更新 你能告诉我哪里错了吗 计划进展顺利,直到我达到以下目标: int number=wCommand.ExecuteNonQuery();线 程序不会崩溃,但表不会更新 string dns = "Dsn=dattest;Uid=******;Pwd=******;"; OdbcDataReader reader; OdbcCommand wCommand;
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)"
在这两种情况下,系统始终没有给我任何连接错误。好的,伙计们,这有点奇怪 让我来解释整件事。我是为一个客户做这个程序的,他问我一个可以连接我的mysql数据库和另一家公司的sybase数据库的软件 问题是,当在服务器上打开该公司的DBMS时,会阻止对所连接的数据库进行各种外部编辑 所以select查询定期运行,但更新和插入被该客户端阻止。。。 我已经用一个完美的工作计划度过了4天,但那家公司没有告诉我这个“小”事情
所以要知道DBMS是残酷的。我已经用select检查了它,并且列“stato”的值没有改变,数字等于0如果你运行你的查询
更新dba.Sala\u export\u dati\u macchina\u produzione手动设置stato='p',
,它能工作吗?如果你能提供一个(尽可能小的代码,我们可以复制并粘贴到控制台应用程序中以重新处理问题)@mjwills我认为第一个代码片段就是你要问的……我想我是建议你从混合中取出ODBCClass
,并尽可能地进行最小的复制。确保它在控制台应用程序中,并且你已经在控制台应用程序中运行了代码,并且看到它编译(更重要的是)不起作用(即表现出有问题的行为)。