开发PDA,webbrowse控件问题
第一,一定要使用windows mobile模拟器来调试程序,如果直接在PC上点击执行文件,到webBrowse的地方会显示”此程序非单线程”
因为PDA的执行模式都是多线程的,,在PC上按照PC机的多线程来执行就不对了
webbrowse控件必须执行在单线程的模式下,PDA上调试可能会自己调整
第二,一开始的时候用Windows.Form嵌套UserControl控件,webbrowse再套入UserControl控件,会出现无法点击的问题,,点击了不会跳转连接,无反应,
去掉UserControl控件,直接把webbrowse控件放入Form中就能正常了
二、 PDA仿真器无法通过IP访问本机?
这个是可以的,你可以给模拟器的网卡分配一个不同于PC机的内网IP,然后用IP去访问PC机,这样就可以实现互访。
开发PDA:调用Oracle后台包,存储过程的问题
一定要注意参数类型,个数对应正确,,有的还必需注意多加一个返回值参数.
例子
#region Oracle 后台包操作
/// <summary>
/// 调用存储过程
/// </summary>
/// <param name=”storedProcName”>存储过程名</param>
/// <param name=”parameters”>参数</param>
public int RunPackageFunction(string storedProcName, OracleParameter[] parameters)
{
OracleConnection connection = MyConnect.Connect();
OracleCommand command = new OracleCommand();
command.Connection = connection;
command.CommandText = storedProcName;
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddRange(parameters);
int row = command.ExecuteNonQuery();//执行存储过程
MyConnect.DisConnect(connection);
return row;
}
#endregion
//单据扣费
public int CreateFeeApply(string applyNo, string logonDeptCode, string logonOperator, decimal charges, ref string errorMsg)
{
try
{
OracleParameter[] parameters =
{
//zhis4_report.of_report_data
//new OracleParameter(“adc_report_id”, 1641),
//new OracleParameter(“as_operator”, “”),
new OracleParameter(“as_apply_no”, applyNo),
new OracleParameter(“as_operator”, logonOperator),
new OracleParameter(“as_exec_flag”, “1”),
new OracleParameter(“as_exec_dept”, logonDeptCode),
new OracleParameter(“al_will_degree”, 1),
new OracleParameter(“rdc_apply_charges”, charges),
new OracleParameter(“rdc_apply_derate_charges”, charges),
new OracleParameter(“ReturnValue”, OracleType.Number, 0, ParameterDirection.ReturnValue, true, 0, 0, “”,DataRowVersion.Default, Convert.DBNull)
};
new MySQL().RunPackageFunction(“zhis4_sick_fee.of_fee_for_apply_sheet”, parameters);
return 0;
}
catch (Exception ex)
{
errorMsg = ex.ToString();
Console.WriteLine(errorMsg);
return MyError.Error(ex);
}
}