Web端编写最重要的原则是:针对安卓平板的webview控件来写,所以要查看效果,最好是使用平板来查看,要知道我在编写安卓客户端的时候是锁定竖屏的,而计算机没出意外是横屏的,还有另外一个重要说明,VS2010调试用的浏览器肯定是IE,核心就是IE浏览器,而安卓webview的核心却是webkit,有些效果要在webkit核心浏览器才有的,项目赶进度,所以我所有设计目标都是奔着竖屏webkit核心浏览器去的。
要达到使用平板来预览效果的目的,就要预先设置一下。
一、保证平板和开发用计算机在同一局域网,我是用个无线路由器来搞定的。
二、给开发用的计算机一个固定的IP地址,这样可以保证不要每次都改终端的IP地址才能进入。
三、开发用的计算机把防火墙关掉或设定好出入站规则,把80端口开放出来。
四、有些效果可以在计算机上查看的,如JS效果,不能使用IE查看,要使用chrome浏览器查看,这就是为什么一定要装IIS来调试的原因,CSS效果也可以用chrome浏览器查,不过是横屏的而已。
好,web端的准备调试工作就讲那么多。
公共函数和管理端一样的,也是在解决方案资源管理器中添加项目,本例中命名空间为MeetingOP,类名为DataOP,这些名字我都是随意起的,其实把管理工具那个拷贝过来引用就是了,就是使用的时候要稍微修改一下。
两者的公共函数基本一致,就连接数据库有点不一样,管理工具需要通过配置文件才知道数据库在那里,web端就不用了,数据库就在IIS的目录里面,所以不需要解释xml文档,直接连接数据库就可以了,把整个DLL文件的代码提供出来吧,喜欢深入研究的可以对比一下。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;
namespace MeetingOP
{
public class DataOP
{
public static OleDbConnection DataConn()//连接数据库,返回OleDbConnection连接对象
{
try
{
string strCon = @" Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = |DataDirectory|MeetingData.mdb";
OleDbConnection myConn = new OleDbConnection(strCon);
return myConn;
}
catch
{
return null;
}
}
public static DataTable GetDataTable(string SQLComm)//根据SQL指令获取数据表
{
try{
OleDbConnection oConn = DataConn();
oConn.Open();
OleDbCommand Cmd = oConn.CreateCommand();
Cmd.CommandText = SQLComm;
DataSet DS = new DataSet();
OleDbDataAdapter adapter = new OleDbDataAdapter(Cmd);
adapter.Fill(DS);
DataTable DT = DS.Tables[0];
oConn.Close();
return DT;
}
catch
{
return null;
}
}
public static string SQLUpdate(string sTableName, string[] sField, string[] sValue, string sCondition)//根据条件,生成update的SQL指令
{
string SQLStr = "";
SQLStr = "Update " + sTableName + " set ";
if (sField.Length == sValue.Length)
{
for (int i = 0; i < sField.Length; i++)
{
SQLStr += sField[i] + "=" + sValue[i] + ",";
}
}
else
SQLStr = "";
SQLStr = SQLStr.Substring(0, SQLStr.Length - 1);
SQLStr += " where " + sCondition;
return SQLStr;
}
public static string SQLInsert(string sTableName, string[] sField, string[] sValue)//根据条件,生成Insert的SQL指令
{
string SQLStr = "";
SQLStr = "Insert Into " + sTableName + " ( ";
if (sField.Length == sValue.Length)
{
for (int i = 0; i < sField.Length; i++)
{
SQLStr += sField[i] + ",";
}
SQLStr = SQLStr.Substring(0, SQLStr.Length - 1) + ") Values(";
for (int i = 0; i < sField.Length; i++)
{
SQLStr += sValue[i] + ",";
}
SQLStr = SQLStr.Substring(0, SQLStr.Length - 1) + ")";
}
else
SQLStr = "";
return SQLStr;
}
public static int SQLCom(string sqlStr)//在数据库中执行指定SQL语句,返回影响行数。
{
OleDbConnection oConn = DataConn();
oConn.Open();
OleDbCommand Cmd = new OleDbCommand();
Cmd.CommandText = sqlStr;
Cmd.Connection = oConn;
int SQLComCount = Cmd.ExecuteNonQuery();
Cmd.Clone();
oConn.Close();
return SQLComCount;
}
public static string GetAny(string TableName, string FieldName, string IDName, string ID)//在数据库中指定表具备唯一ID记录中获取指定字段内容
{
string Site_Str = "Select " + FieldName + " From " + TableName + " Where " + IDName + "=" + ID;
DataTable DT = GetDataTable(Site_Str);
string str = "";
if (DT != null)
{
str = DT.Rows[0][FieldName].ToString();
}
return str.Trim();
}
}
}
其实里面的所有涉及到插入数据、更新数据的函数都是多余的,因为在web页面是针对平板使用的,之所以全写了,是懒得删,因为是从管理工具那边拷贝过来的,还有就是预留扩展用的,万一扩展的时候 要用呢?
下篇博文讲第一个页面,就是default.aspx的编写。