第一次写类似的东西,花了不少时间调试({n} 两边要加单引号啊!)
Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。Web Service是自描述、 自包含的可用网络模块, 可以执行具体的业务功能。Web Service也很容易部署, 因为它们基于一些常规的产业标准以及已有的一些技术,诸如标准通用标记语言下的子集XML、HTTP。Web Service减少了应用接口的花费。Web Service为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制。
#region "973接口"
[WebMethod(Description = "分页查询973标准和原始数据")]
//最后一个输出参数out参数提供DataSet的总条数
public DataSet Search973Data(string dataName, string prodType, string startTime, string endTime, double dStartLong, double dEndLong, double dStartLat, double dEndLat, int onPage, int countOfPerPage,out int totalCount)
{
DataSet ds = new DataSet();
string tableName = "";
if (dataName.ToLower().Contains("prod") && dataName.ToLower().Contains("omi"))
tableName = "prod_aerosol_omi";
else if (dataName.ToLower().Contains("prod") && dataName.ToLower().Contains("avhrr"))
tableName = "prod_aerosol_avhrr";
else if (dataName.ToLower().Contains("prod") && dataName.ToLower().Contains("modis"))
tableName = "prod_aerosol_modis";
else if (dataName.ToLower().Contains("prod") && dataName.ToLower().Contains("misr"))
tableName = "prod_aerosol_misr";
else if (dataName.ToLower().Contains("prod") && dataName.ToLower().Contains("toms"))
tableName = "prod_aerosol_toms";
else if (dataName.ToLower().Contains("prod") && dataName.ToLower().Contains("parasol"))
tableName = "prod_aerosol_parasol";
else if (dataName.ToLower().Contains("qrst") && dataName.ToLower().Contains("omi"))
tableName = "qrst_standard_omi";
else if (dataName.ToLower().Contains("qrst") && dataName.ToLower().Contains("modis"))
tableName = "qrst_standard_modis";
else if (dataName.ToLower().Contains("qrst") && dataName.ToLower().Contains("toms"))
tableName = "qrst_standard_toms";
else if (dataName.ToLower().Contains("qrst") && dataName.ToLower().Contains("misr"))
tableName = "qrst_standard_misr";
DateTime dtStart = DateTime.Parse(startTime);
DateTime dtEnd = DateTime.Parse(endTime);
string strCon = "Database='eeee';Data Source='192.***.**.***';User Id='***';Password='***';charset='utf8'";
using (MySqlConnection mysqlConn = new MySqlConnection(strCon))
{
mysqlConn.Open();
using (MySqlCommand cmd = mysqlConn.CreateCommand())
{
//使用Mysql的limit功能,提供分页查询
int startRecord = onPage ;//从第几条开始
int RecordNum=countOfPerPage;//多少条
cmd.CommandText = string.Format("select * from {0} where (SCENEDATE between '{1}' and '{2}') and '{3}' >=DATAUPPERLEFTLONG and '{4}'<=DATAUPPERRIGHTLONG and '{5}'>=DATALOWERRIGHTLAT and '{6}'<=DATAUPPERRIGHTLAT and ('{7}'=Type) limit {8},{9}", tableName, dtStart, dtEnd, dStartLong, dEndLong, dStartLat, dEndLat, prodType,startRecord,RecordNum);
MySqlDataAdapter da = new MySqlDataAdapter(cmd.CommandText, mysqlConn);
da.SelectCommand = cmd;
da.Fill(ds);
//给out参数赋值,以供调用
totalCount = ds.Tables[0].Rows.Count;//out 参数:获取总条数
return ds;//返回DataSet
}
}
}
#endregion
#region "三维球接口"
[WebMethod(Description = "查询973标准数据")]
public DataSet Search973StdData(string stdName, string prodType, string startTime, string endTime, double dStartLong, double dEndLong, double dStartLat, double dEndLat, string filenameFilter)
{
DataSet ds = new DataSet();
string tableName="";
if (stdName.ToLower().Contains("omi"))
tableName = "qrst_standard_omi";
else if (stdName.ToLower().Contains("modis"))
tableName = "qrst_standard_modis";
else if (stdName.ToLower().Contains("toms"))
tableName = "qrst_standard_toms";
else if (stdName.ToLower().Contains("misr"))
tableName = "qrst_standard_misr";
DateTime dtStart = DateTime.Parse(startTime);
DateTime dtEnd = DateTime.Parse(endTime);
string strCon = "Database='***';Data Source='192.168.**.***';User Id=‘***';Password='*****';charset='utf8'";
using (MySqlConnection mysqlConn = new MySqlConnection(strCon))
{
mysqlConn.Open();
using (MySqlCommand cmd = mysqlConn.CreateCommand())
{
//注意在 {n} 两边单引号即:'{n}'
cmd.CommandText = string.Format("select * from {0} where (SCENEDATE between '{1}' and '{2}') and '{3}' >=DATAUPPERLEFTLONG and '{4}'<=DATAUPPERRIGHTLONG and '{5}'>=DATALOWERRIGHTLAT and '{6}'<=DATAUPPERRIGHTLAT and ('{7}'=Type) and (FileName like '%{8}%')", tableName, dtStart, dtEnd, dStartLong, dEndLong, dStartLat, dEndLat, prodType, filenameFilter);
MySqlDataAdapter da = new MySqlDataAdapter(cmd.CommandText, mysqlConn);
da.SelectCommand = cmd;
da.Fill(ds);
return ds;
}
}
}
#endregion
(第二个WebService接口的)效果示例:
查询结果: