采用webservice的方法在form应用程序中实现远端的MDB文件操作的问题!
目的:
希望通过某计算机上的form程序对同局域网的服务器上的mdb文件进行操作。操作系统均为xp sp3,软件环境为vs2008。
实现方法:
1)在服务器上架设webservice,并设计本端调用mdb文件的方法。将webservice部署到Internet信息服务上。
[WebMethod("insert mdb 方法")]
public bool mdbinsert(string insertstr)
{
System.Data.DataSet myDataSet = null;
try
{
string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = E:/HMI/data.mdb";
OleDbConnection myConn = new OleDbConnection(strCon);
myConn.Open();
OleDbCommand myCommand = new OleDbCommand(InsertStr, myConn);
myCommand.ExecuteNonQuery();
myConn.Close();
return true;
}
catch (Exception ex)
{
return false;
}
}
[WebMethod("query mdb 方法")]
public DataSet mdbquery(string querystr,string tablestr)
{
System.Data.DataSet myDataSet = null;
try
{
string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = E:/HMI/data.mdb";
OleDbConnection myConn = new OleDbConnection(strCon);
myConn.Open();
myDataSet = new DataSet();
OleDbDataAdapter myCommand = new OleDbDataAdapter(querystr, myConn);
myCommand.Fill(myDataSet, tablestr);
myConn.Close();
}
catch (Exception ex)
{
}
return myDataSet;
}
//insert
private void button1_Click(object sender, EventArgs e)
{
WebReference.Service1 MyWeb = new WebReference.Service1();
string tempname = "测试人";
Random rd = new Random();
string temppwd = Convert.ToInt32(rd.Next(1000)).ToString();
//string InsertStr = "INSERT INTO USERPWD(username,userpwd,电源,精调,检验,维修) VALUES('" + tempname + "','" + temppwd + "',1,2,3,4)";
//string TempStr = "INSERT INTO USERPWD(username,userpwd,电源,精调,检验,维修) VALUES('测试',999,1,2,3,4)";
string TempStr = "INSERT INTO USERPWD(userpwd) VALUES(999)";
bool Resault = MyWeb.mdbinsert(TempStr, "USERPWD");
textBox1.Text = textBox1.Text + Resault.ToString() + "\r\n";
MessageBox.Show("插入完毕");
}
//Query
private void button2_Click(object sender, EventArgs e)
{
WebReference.Service1 MyWeb = new WebReference.Service1();
System.Data.DataSet ODataSet;
string QueryWord = " SELECT * FROM USERPWD ";
string QueryTable = "USERPWD";
ODataSet = MyWeb.mdbquery(QueryWord, QueryTable);
ArrayList AList = new ArrayList();
for (int i = 0; i < ODataSet.Tables[0].Rows.Count; i++)
{
string Temp = ODataSet.Tables[0].Rows[i][QueryTable].ToString();
//AList.Add(Temp);
textBox1.Text = textBox1.Text + Temp + "\r\n";
}
MessageBox.Show("读取完毕");
}
请各位不吝赐教!先谢谢了。 webservice mdb 局域网
[解决办法]
mdb数据库是否有其它程序以独占方式打开了?
你在webservice的两个catch中都加上throw,看看异常是什么?
catch (Exception ex)
{
throw;
}
[解决办法]
错误信息被丢弃,楼主的命运注定就有更多坎坷,知错就改吧!
[解决办法]
另外,关闭数据连接的语句应该放在 finally { }中,编程要严谨。
[解决办法]
返回false没有实际意义,关键是看具体的错误信息是什么。
[解决办法]
如果你不自己处理error就别写try
自己给自己找麻烦
吧你程序的try去掉
看看到底是什么错误