excelvba客户端传递sql语句给服务器端asp,查询数据返回客户端

zailaiyicihaole 2012-04-09 07:11:55
跪求高人指点,excelvba客户端传递sql语句给服务器端asp,查询数据返回客户端的做法。首先客户端是excel用vba编程,页面输入参数,拼接字符串,发送。服务器端为asp编写,其接受客户端发来的字符串,连接数据库查询得到数据,然后以文本形式返回客户端excel,excel接收到数据后弹出保存框保存为txt文档。请问这个怎么实现,小弟在这里感激不尽
...全文
136 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zailaiyicihaole 2012-04-12
  • 打赏
  • 举报
回复
asp或者asp.net写的服务端,服务端职能就是,就收客户端(vba excel编写的客户端,其会调用服务端服务传递sql语句)传递过来的sql语句,进行查询,得到查询数据,把数据封装成文本格式,然后返回客户端,客户端得到数据后提示保存,可以保存txt类型文档在本地。小弟初学,相关技术底子不好,现在这个服务端要求不需要要socket,也许webservice可以实现,求帮助
zailaiyicihaole 2012-04-12
  • 打赏
  • 举报
回复
上面是我的webservice端共客户端调用服务,但是总是出现问题,提示
response.ContentType = "application/octet-stream";
//response.ContentType = "text/xml";
应该是"text/xml"格式,我改过来也不行,response似乎传递的只是xml格式的,我现在没有解决方案,望高人指点了
zailaiyicihaole 2012-04-12
  • 打赏
  • 举报
回复
[WebMethod]
public void HelloWorld(string sql, string flag)
{
HttpResponse response = System.Web.HttpContext.Current.Response;
if (flag == "0")
{
DataTable idr = FINANCE_DATA.search(sql);
response.Clear();
response.Buffer = false;
response.ContentType = "application/octet-stream";
//response.ContentType = "text/xml";
response.AppendHeader("content-disposition", "attachment;filename=finance.txt;");
for (int k = 0; k < idr.Rows.Count; k++)
{
string strKOJO_CD = StringMosaic.strNul(idr.Rows[k]["kojo_cd"].ToString(), 8);
string strSOUKO_CD = StringMosaic.strNul(idr.Rows[k]["souko_cd"].ToString(), 5);
string strTANA_CD = StringMosaic.strNul(idr.Rows[k]["tana_cd"].ToString(), 8);
string strMAKER_NO = StringMosaic.strNul(idr.Rows[k]["maker_no"].ToString(), 1);
string strITEM_NO = StringMosaic.strNul(idr.Rows[k]["item_no"].ToString(), 25);
string strITEM_TYPE_CD = StringMosaic.strNul(idr.Rows[k]["item_type_cd"].ToString(), 2);
string strLAST_QTY = StringMosaic.strNul(idr.Rows[k]["last_qty"].ToString(), 10);
string strINP_QTY1 = StringMosaic.strNul(idr.Rows[k]["inp_qty1"].ToString(), 10);
string strINP_QTY2 = StringMosaic.strNul(idr.Rows[k]["inp_qty2"].ToString(), 10);
string strOUT_QTY1 = StringMosaic.strNul(idr.Rows[k]["out_qty1"].ToString(), 10);
string strOUT_QTY2 = StringMosaic.strNul(idr.Rows[k]["out_qty2"].ToString(), 10);
string strOUT_QTY3 = StringMosaic.strNul(idr.Rows[k]["out_qty3"].ToString(), 10);
string strINVEN_QTY = StringMosaic.strNul(idr.Rows[k]["inven_qty"].ToString(), 10);
string strTHIS_QTY = StringMosaic.strNul(idr.Rows[k]["this_qty"].ToString(), 10);
response.Write(strKOJO_CD + strSOUKO_CD + strTANA_CD + strMAKER_NO +
strITEM_NO + strITEM_TYPE_CD + strLAST_QTY + strINP_QTY1 +
strINP_QTY2 + strOUT_QTY1 + strOUT_QTY2 +
strOUT_QTY3 + strINVEN_QTY + strTHIS_QTY + "\r\n");
}
response.Flush();
response.End();
}
else
{
OracleDataReader idr = FINANCE_DATA.searchR(sql);
response.Clear();
response.Buffer = false;
//response.ContentType = "application/octet-stream";
//response.ContentType = "text/html";
//response.ContentType = "text/xml"
response.ContentType = "application/octet-stream; charset=utf-8";
response.AppendHeader("content-disposition", "attachment;filename=finance.txt;");
while (idr.Read())
{
string strKOJO_CD = StringMosaic.strNul(idr["kojo_cd"].ToString(), 8);
string strSOUKO_CD = StringMosaic.strNul(idr["souko_cd"].ToString(), 5);
string strTANA_CD = StringMosaic.strNul(idr["tana_cd"].ToString(), 8);
string strMAKER_NO = StringMosaic.strNul(idr["maker_no"].ToString(), 1);
string strITEM_NO = StringMosaic.strNul(idr["item_no"].ToString(), 25);
string strITEM_TYPE_CD = StringMosaic.strNul(idr["item_type_cd"].ToString(), 2);
string strLAST_QTY = StringMosaic.strNul(idr["last_qty"].ToString(), 10);
string strINP_QTY1 = StringMosaic.strNul(idr["inp_qty1"].ToString(), 10);
string strINP_QTY2 = StringMosaic.strNul(idr["inp_qty2"].ToString(), 10);
string strOUT_QTY1 = StringMosaic.strNul(idr["out_qty1"].ToString(), 10);
string strOUT_QTY2 = StringMosaic.strNul(idr["out_qty2"].ToString(), 10);
string strOUT_QTY3 = StringMosaic.strNul(idr["out_qty3"].ToString(), 10);
string strINVEN_QTY = StringMosaic.strNul(idr["inven_qty"].ToString(), 10);
string strTHIS_QTY = StringMosaic.strNul(idr["this_qty"].ToString(), 10);
response.Write(strKOJO_CD + strSOUKO_CD + strTANA_CD + strMAKER_NO +
strITEM_NO + strITEM_TYPE_CD + strLAST_QTY + strINP_QTY1 +
strINP_QTY2 + strOUT_QTY1 + strOUT_QTY2 +
strOUT_QTY3 + strINVEN_QTY + strTHIS_QTY + "\r\n");
}
response.Flush();
response.End();
}
}
zailaiyicihaole 2012-04-10
  • 打赏
  • 举报
回复
跪求高人指点,excelvba客户端传递sql语句给服务器端asp,查询数据返回客户端的做法。首先客户端是excel用vba编程,页面输入参数,拼接字符串,发送。服务器端为asp编写,其接受客户端发来的字符串,连接数据库查询得到数据,然后以文本形式返回客户端excel,excel接收到数据后弹出保存框保存为txt文档。请问这个怎么实现,小弟在这里感激不尽

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧