Createparameter 有这种用法吗?可以试试下面这种方式。 public void CreateMyOleDbCommand(OleDbConnection connection, string queryString, OleDbParameter[] parameters) { OleDbCommand command = new OleDbCommand(queryString, connection); command.CommandText = "SELECT CustomerID, CompanyName FROM Customers WHERE Country = ? AND City = ?"; command.Parameters.Add(parameters); for (int j=0; j<parameters.Length; j++) { command.Parameters.Add(parameters[j]) ; } string message = ""; for (int i = 0; i < command.Parameters.Count; i++) { message += command.Parameters[i].ToString() + "\n"; } Console.WriteLine(message); }
我用的是ASP,不是ASP.NET 程序调用的是过程 Function getWincoBosCombinedEdit(dbObj,fWorkNo,fYSSL,fZDSS,fDate,fName,fDeliveryDate) Dim rs,cmdobj set cmdObj=Server.CreateObject("ADODB.Command") cmdObj.CommandText="P_SelBosCombinedEdit" cmdObj.CommandType=4 set cmdObj.ActiveConnection=dbObj cmdObj.Prepared=True cmdObj.Parameters.Append cmdObj.Createparameter("M_FWorkNo",200,1,50,fWorkNo) cmdObj.Parameters.Append cmdObj.Createparameter("M_FYSSL",4,1,50,fYSSL) cmdObj.Parameters.Append cmdObj.Createparameter("M_FZDSS",4,1,50,fZDSS) cmdObj.Parameters.Append cmdObj.Createparameter("M_FDate",200,1,50,fDate) cmdObj.Parameters.Append cmdObj.Createparameter("M_FName",200,1,128,fName) cmdObj.Parameters.Append cmdObj.Createparameter("M_FDeliveryDate",200,1,128,fDeliveryDate) Set getWincoBosCombinedEdit=cmdObj.Execute End Function dbObj是连接数据库的,P_SelBosCombinedEdit是连接的存储过程,测试时候提示有问题,在MS SQL SERVER里就没有问题
ASP , 那出错信息是什么?
错误类型: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [MySQL][ODBC 3.51 Driver][mysqld-5.0.41-community-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{ call P_SelBosCombinedEdit('GC08121222', 3.00100000000000000e+003, 3.0700000000' at line 1 /winco/sinclude/dbLib.shtml, 第 2487 行 浏览器类型: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; TencentTraveler ; .NET CLR 1.1.4322; .NET CLR 2.0.50727) 网页: POST 1776 ??? /winco/pmc/k3BcWorkNoEdit.aspPOST Data: stockOutDate=&fWorkNo1=GC08121222&isChange1=&fCustomerName1=%E5%AE%89%E9%81%94&fName1=10852+09%E5%B9%B4%E6%9C%AC%E5%BB%A0%E7%9B%92&fYSSL1=3001&fZDSS1=3070&fDeliveryDate1=12-30&fLevel01=2889&fMadeWidth . . .
错误类型: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [MySQL][ODBC 3.51 Driver][mysqld-5.0.41-community-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{ call P_SelBosCombinedEdit('GC08121225', '2009-4-18') }' at line 1 /winco/sinclude/dbLib.shtml, 第 2483 行 “cmdObj.Parameters.Append”那个是ASP调用MS SQL SERVER存储过程常用的,但调用MYSQL就不太清楚用哪个了,按道理说应该是可以调用的呀,不知道为什么?
public void CreateMyOleDbCommand(OleDbConnection connection,
string queryString, OleDbParameter[] parameters)
{
OleDbCommand command = new OleDbCommand(queryString, connection);
command.CommandText =
"SELECT CustomerID, CompanyName FROM Customers WHERE Country = ? AND City = ?";
command.Parameters.Add(parameters); for (int j=0; j<parameters.Length; j++)
{
command.Parameters.Add(parameters[j]) ;
} string message = "";
for (int i = 0; i < command.Parameters.Count; i++)
{
message += command.Parameters[i].ToString() + "\n";
}
Console.WriteLine(message);
}
程序调用的是过程
Function getWincoBosCombinedEdit(dbObj,fWorkNo,fYSSL,fZDSS,fDate,fName,fDeliveryDate)
Dim rs,cmdobj
set cmdObj=Server.CreateObject("ADODB.Command")
cmdObj.CommandText="P_SelBosCombinedEdit"
cmdObj.CommandType=4
set cmdObj.ActiveConnection=dbObj
cmdObj.Prepared=True
cmdObj.Parameters.Append cmdObj.Createparameter("M_FWorkNo",200,1,50,fWorkNo)
cmdObj.Parameters.Append cmdObj.Createparameter("M_FYSSL",4,1,50,fYSSL)
cmdObj.Parameters.Append cmdObj.Createparameter("M_FZDSS",4,1,50,fZDSS)
cmdObj.Parameters.Append cmdObj.Createparameter("M_FDate",200,1,50,fDate)
cmdObj.Parameters.Append cmdObj.Createparameter("M_FName",200,1,128,fName)
cmdObj.Parameters.Append cmdObj.Createparameter("M_FDeliveryDate",200,1,128,fDeliveryDate)
Set getWincoBosCombinedEdit=cmdObj.Execute
End Function
dbObj是连接数据库的,P_SelBosCombinedEdit是连接的存储过程,测试时候提示有问题,在MS SQL SERVER里就没有问题
那出错信息是什么?
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[MySQL][ODBC 3.51 Driver][mysqld-5.0.41-community-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{ call P_SelBosCombinedEdit('GC08121222', 3.00100000000000000e+003, 3.0700000000' at line 1
/winco/sinclude/dbLib.shtml, 第 2487 行
浏览器类型:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; TencentTraveler ; .NET CLR 1.1.4322; .NET CLR 2.0.50727) 网页:
POST 1776 ??? /winco/pmc/k3BcWorkNoEdit.aspPOST Data:
stockOutDate=&fWorkNo1=GC08121222&isChange1=&fCustomerName1=%E5%AE%89%E9%81%94&fName1=10852+09%E5%B9%B4%E6%9C%AC%E5%BB%A0%E7%9B%92&fYSSL1=3001&fZDSS1=3070&fDeliveryDate1=12-30&fLevel01=2889&fMadeWidth . . .
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[MySQL][ODBC 3.51 Driver][mysqld-5.0.41-community-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{ call P_SelBosCombinedEdit('GC08121225', '2009-4-18') }' at line 1
/winco/sinclude/dbLib.shtml, 第 2483 行
“cmdObj.Parameters.Append”那个是ASP调用MS SQL SERVER存储过程常用的,但调用MYSQL就不太清楚用哪个了,按道理说应该是可以调用的呀,不知道为什么?
call P_SelBosCombinedEdit('GC08121222', 3.00100000000000000e+003, 3.0700000000' 而五楼则是 call P_SelBosCombinedEdit('GC08121225', '2009-4-18') 只有两个参数?你两次的错误信息为什么不同啊? 一个是 2487 行,一个是2483 行。这两行的代码都是什么?
存储过程的大致内容为:查询一些处理好的数据放在新建的零时表中,同时向表bosCombinedPMCEntry插入入数据,然后用SELCECT语句查询这个零时表出来。
然后在网页中调用这个存储过程插寻出来的数据放在在TABEL中,却无数据显示,不知道为什么。而MYSQL表中bosCombinedPMCEntry已经插入了新数据了。
在MYSQL中调用call P_SelBosCombinedEdit('gc08121254',200,300,'2009-4-21','sdfsdf',0,1,1,1,1,0,1);
是可以查询出来数据的。
就是在网页中显示不出来,不知道为什么?