在这里,我们将给大家分享关于WebService返回DataTable问题的知识,让您更了解webservice返回值的本质,同时也会涉及到如何更有效地.net异步调用webservice并取得Web
在这里,我们将给大家分享关于WebService返回DataTable问题的知识,让您更了解webservice返回值的本质,同时也会涉及到如何更有效地.net 异步调用webservice 并取得Webservice返回结果、.Net读取Excel 返回DataTable实例代码、C#使用OracleDataReader返回DataTable、CXF+Tomcat发布WebService问题的内容。
本文目录一览:- WebService返回DataTable问题(webservice返回值)
- .net 异步调用webservice 并取得Webservice返回结果
- .Net读取Excel 返回DataTable实例代码
- C#使用OracleDataReader返回DataTable
- CXF+Tomcat发布WebService问题
WebService返回DataTable问题(webservice返回值)
今天做项目时,想在WebService中返回DataTable,在单位没成功,看网上有人说datable在.net1.1中是没有序列化的,不能直接在webservice中返回,可以返回dataset.晚上回家又上网找了一下,看到说法基本一致,还有一篇被引用很多的文章说在asp.net2.0中datatable已经被序列化了,但是还需要自己手动写一些代码才能从webservice中返回.我就想一定要写另写代码吗?继续查找,发现有人说必须给datable起名就可以返回了,还可以在调用端手动转换为datatable类型.又做了一遍,完全通过了,不用强制类型转换了.代码如下: webservice文件中 [WebMethod] 调用页面中 WebService1.WebService1 service = new WebService1.WebService1(); 最关键的是在webservice的方法中为datatable命名,否则就会报错. |
.net 异步调用webservice 并取得Webservice返回结果
在.net中,为我们提供了一种异步调用WebService的方法,我们在用wsdl.exe 生成代理类后,可爱的wsdl.exe为我们的代理类添加了很多事件方法,下面我给大家分享下我异步调用代码的过程...
代理类大家就直接去生成了哈。。
还有,插句话,利用webservice,我们也可以上传和下载一些比较小的文件,数据以字节流的(byte[])方式进行传送,我是在tomcat5.5 .net 3.5环境下做的测试,10多M的数据上传和下载都不会存在问题,利用这点又为我们在CS端上传和下载图片除了使用WebClient API又提供了另外一种方法。。
.Net读取Excel 返回DataTable实例代码
using System;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using System.Data;
using System.IO;
using System.Linq;
using System.Web;
using System.Collections;
using System.Data.OleDb;
using NuctechProject.DTO.Bll;
using System.Collections.Generic;
namespace NuctechProject.Layouts.Project
{
public partial class IntroductionPlan : LayoutsPageBase
{
string url = Common.rootUrl;
private string _strConn; //导入excel时的连接
string pmurl = Common.proUrl;
private UserBLL bll = new UserBLL();
protected void Page_Load(object sender, EventArgs e)
{
hidProid.Value = Request.QueryString["proid"];
}
protected void BtnOK_Click(object sender, EventArgs e)
{
DataTable excelTable = null;
SPSecurity.RunWithElevatedPrivileges(delegate
{
if (BaseInfoTemplateFile.HasFile)
{
List<string> noInput = new List<string>();
string strLoginName = HttpContext.Current.User.Identity.Name; //获取用户名
string folderTemp = strLoginName.Substring(strLoginName.LastIndexOf(''\\'') + 1);
try
{
string extension = Path.GetExtension(BaseInfoTemplateFile.FileName); //获取文件的后缀
if (extension != null)
{
string fileException = extension.ToLower();
if (fileException == ".xlsx" || fileException == ".xls")
{
#region 读取Excel
string fileFolder = Server.MapPath("~/_layouts/15/images/" + folderTemp + "Upfile/");
if (!Directory.Exists(fileFolder)) //根目录
{
Directory.CreateDirectory(fileFolder); //判断上传目录是否存在 自动创建
}
BaseInfoTemplateFile.SaveAs(Server.MapPath("~/_layouts/15/images/" + folderTemp + "Upfile/" + BaseInfoTemplateFile.FileName));
string strFilepathNmae = Server.MapPath("~/_layouts/15/images/" + folderTemp + "Upfile/" + BaseInfoTemplateFile.FileName);
string strExcel = ExcelSheetName(strFilepathNmae)[0].ToString();
excelTable = ExcelDataSource(strFilepathNmae, strExcel).Tables[0];
#endregion
//data是excel的数据
DataTable data = ExcelDataSource(strFilepathNmae, strExcel).Tables[0];
//try
//{
if (data != null)
{
foreach (DataRow row in data.Rows)
{
//读取
}
}
//}
//catch (Exception)
//{
// Page.ClientScript.RegisterStartupScript(Page.ClientScript.GetType(), "myscript", "<script type=''text/javascript''>$.ligerDialog.closeWaitting();alert(''Excel表列名与系统不符合,请检查Excel表列名!'');</script>");
// return;
//}
}
else
{
Page.ClientScript.RegisterStartupScript(Page.ClientScript.GetType(), "myscript", "<script type=''text/javascript''>$.ligerDialog.closeWaitting();alert(''您选择的文件不是Excel格式!'');</script>");
return;
}
}
}
finally //最终要把临时存储的文件删除
{
string strFileFolder = Server.MapPath("~/_layouts/15/images/" + folderTemp + "Upfile/");
if (Directory.Exists(strFileFolder)) //根目录
{
//Directory.CreateDirectory(strFileFolder);//判断上传目录是否存在 自动创建
Directory.Delete(strFileFolder, true);
}
else
{
Page.ClientScript.RegisterStartupScript(Page.ClientScript.GetType(), "myscript", "<script type=''text/javascript''>ReturnPageValue();</script>");
}
}
}
else
{
Page.ClientScript.RegisterStartupScript(Page.ClientScript.GetType(), "myscript", "<script type=''text/javascript''>$.ligerDialog.closeWaitting();alert(''请选择导入文件!'');</script>");
return;
}
});
}
protected void BtnClose_Click(object sender, EventArgs e)
{
Page.ClientScript.RegisterStartupScript(Page.ClientScript.GetType(), "myscript", "<script type=''text/javascript''>ReturnPageValue();</script>");
}
/// <summary>
/// 连接到Excel
/// </summary>
/// <param name="filepath">文件路径</param>
/// <param name="sheetname">sheet名字</param>
/// <returns></returns>
public DataSet ExcelDataSource(string filepath, string sheetname)
{
_strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filepath +
";Extended Properties=''Excel 12.0;HDR=YES''";
new OleDbConnection(_strConn);
var oada = new OleDbDataAdapter("select * from [" + sheetname + "]", _strConn);
var ds = new DataSet();
oada.Fill(ds);
return ds;
}
/// <summary>
/// 获得Excel中的所有sheetname
/// </summary>
/// <param name="filepath">文件路径</param>
/// <returns></returns>
public ArrayList ExcelSheetName(string filepath)
{
_strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filepath +
";Extended Properties=''Excel 12.0;HDR=YES''";
var al = new ArrayList();
var conn = new OleDbConnection(_strConn);
conn.Open();
DataTable sheetNames = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,
new object[] { null, null, null, "TABLE" });
conn.Close();
if (sheetNames != null)
foreach (DataRow dr in sheetNames.Rows)
{
al.Add(dr[2]);
}
return al;
}
}
}
- asp.net 读取Excel数据到DataTable的代码
C#使用OracleDataReader返回DataTable
string data = string.Empty;
DataTable OutDataTable = new DataTable();
OracleDataReader daReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
OutDataTable = new DataTable();
DataRow dataRow;
//设置Table名和Column名
OutDataTable.TableName ="test";
for (int j = 0; j < daReader.FieldCount; j++)
{
//获取列名
OutDataTable.Columns.Add(daReader.GetName(j));
}
//循环取数据集合中的数据,存到DataTable中
do
{
while (daReader.Read())
{
dataRow = OutDataTable.NewRow();
for (int j = 0; j < daReader.FieldCount; j++)
{
data = daReader[j].ToString();
dataRow[j] = data;
}
OutDataTable.Rows.Add(dataRow);
}
} while (daReader.NextResult());
dtTemp = OutDataTable;
CXF+Tomcat发布WebService问题
本人是个新手,最近在学习WebService 想利用CXF+Tomcat+eclipse发布自己的报务。但遇到了下面错误,请高手指点迷津:
接口定义如下:
@WebService
public interface SendMessageIntf {
public void sendMessage(@WebParam(name = "to")String to,
@WebParam(name = "message")String message,
@WebParam(name = "serverIP")String serverIP)
throws ParseException,InvalidArgumentException, SipException;
}
实现类如下:
public class SendSipMessageImpl implements SipSendMessageIntf{public SipSendSipMessage(int x)
{
int y=0;
y=x+1;
}
@Override
public void sendMessage(String to, String message, String serverIP)
throws ParseException, InvalidArgumentException, SipException {
}
}
问题如下:在实现类SendSipMessageImpl中如果带有参构造函数public SipSendSipMessage(int x)
{
int y=0;
y=x+1;
}
服务就不能正确发布,如果上面的有参构造函数改为无参构造函数public SipSendSipMessage()
{
int y=0;
y=y+1;
}
,服务就能正常发布。
请问这是为什么?谢谢!!!!!!
今天关于WebService返回DataTable问题和webservice返回值的介绍到此结束,谢谢您的阅读,有关.net 异步调用webservice 并取得Webservice返回结果、.Net读取Excel 返回DataTable实例代码、C#使用OracleDataReader返回DataTable、CXF+Tomcat发布WebService问题等更多相关知识的信息可以在本站进行查询。
本文标签: