一步一步建立我的MIS系統 1 分析

2021-06-15 18:42:45 字數 3917 閱讀 4543

mis系統,就是管理資訊系統,是企業管理思想的體現。乙個mis系統做得好不好,不僅在於it部門的水平有多高,更在於乙個企業的管理先不先進,規不規範,企業的高層對mis系統得認識有多深。

當然,有乙個好的cio,乙個好的系統分析員,乙個好的架構師,乙個好的資料設計師,3~5個訓練有素,基本功過硬的程式設計師(至少要能熟練運用陣列,鍊錶,佇列,堆疊,要知道遞規,知道怎樣把遞規演算法改為非遞規演算法,知道樹,二叉查詢樹,知道窮舉法,貪婪法等),再加上乙個美工,那是再好不過了。可惜,大部分的企業沒有這些人,或者這些人不全(至少我知道的企業如此,軟體公司除外),都是乙個人頂幾個人用。像我,乙個人既是系統分析員(直接和使用者打交道,搞清楚他們的需求),又是架構師(架構不好,那以後的修改可是非常痛苦的,不要認為使用者的要求的是不變,有時候,乙個星期,他就要變3次),又是做資料設計(搞mis系統,如果不熟悉sql,那可說不過去),又是編碼(分內之事),又作介面設計(雖然難看,但是沒人,你就得抗),系統測試(你寫的程式你不測試,誰測試?),有時還得給人裝裝機,換換硒鼓,調調ip。所以工作了好幾年,但水平一直提不高,也就是弄弄資料庫,見幾個表,然後開啟delphi,新建乙個表單,拉幾個比如dbedit之類的東東,在設定一下datasource,放幾個按鈕,寫幾行insert,edit,post之類的**。說是高階打字員,一點也不為過。

就這樣敲了幾年的begin,end,insert,edit,post,select,update,delete,發現了乙個規律,就是我每天辛辛苦苦敲的這些東東,其實完全可以敲一次就可以了,其他地方拉過就是了,不就是對資料的增,刪,改麼?哪管你審核,核准,還不就是對資料中乙個欄位的修改?什麼許可權不許可權,還不就是設定一下,讓你看不看得到某個欄位的內容?這樣一想,居然覺得自己以前好傻。

所有的這些,最終都是通過sql語句實現的,整個過程可以這樣描述。

首先,使用者開始使用系統,於是我根據他/她的使用者名稱select field1,field2,... from table where .... order by ....,然後使用者開始新增或修改資料,新增時,我 insert into table(field1,field2,field3....) values(value1,value2,value3...),修改時,我update table set field1=value1,field2=value2...where ....刪除時,我delete from table where ....

再分析,發現這些select,update,delete們,也有共同的特點,就是都是由動作,物件,條件組成,比如,select * from table where conditon1 order by sequence,update table set field1=value where condition,delete from table where condition。

至於相關的業務流程,無非就在insert,update,delete之前作判斷,是否exists某種condition,如果存在,就再做相應的insert,update或delete,或者讓這些insert,update,delete動作不被執行。

如果將這些功能封裝為乙個或幾個類,其他地方只要呼叫這個類或者幾個類,那不就省事多了?說幹就幹,經過兩天的冥思苦想,基於sql server 2005,c#2.0,寫了下面的幾行**,我把它做為乙個檔案,dbwr.cs。

////namespace eweai.business.inte***ces.it}//

////#define debug

using system;

using system.collections;

using system.data;

using system.data.sqlclient;

using system.text;

using eweai.business.inte***ces.it;

namespace eweai.data

private void initsetting()

private dataset dbsetting = new dataset("dbsetting");

private string getdbcononectionstring()

///

/// 資料讀寫模組的唯一例項

///

public static dbwr instance

}private static dbwr _instance = null;

#endregion

#region 資料庫聯接

///

/// 資料庫連線字串

///

return _connectionstring;

#endif}}

private string _connectionstring = null;

///

/// 資料庫連線

///

public sqlconnection connection

}#endregion

#region 資料讀寫

///

/// 構建某個表的選擇列表

///

///

///

///

///

///

///

///

public string buildselectsql(string user, string tablename, string where, string order,

string collist/*null返回所有字段*/)

//如果只返回部分字段

if (collist != null)

if (j == collist.length)

continue;

}coltable.dispose();

return result.tostring();

}///

/// 提取某個表的可以選擇字段

///

///

///

///

private datatable getfieldlist(string tablename, string user)

public void execsql(string sql)

finally

public datatable readdata(string sql)

finally

}public datatable readdata(string sql,ref datatable table)

finally

}public datatable getstruct(string sql)

finally

}public object getsinglevalue(string sql)

finally

}public string update(string asql, datatable table)}}

catch (exception e)

finally

return result;

}public string update(string asql, datarow row));}

}}catch (exception e)

finally

return result;

}private hashtable getadapter(hashtable sqls,sqlconnection con)

return result;

}public string update(dataset businessdata,hashtable sqls)

catch (exception cex)

}}            

action.commit();

}catch (exception e)

finally

return null;

#endregion}}

一步一步建立我的MIS系統(一) 前言

當前的企業mis系統,許多都是兩層設計,將業務邏輯寫在介面,或者寫在資料庫,或者介面與資料中都寫。通俗的講,就是從控制項欄拉幾個控制項放到form,然後在這些控制項的事件裡寫 對使用者的行為進行控制,或者在後台資料庫作某些控制,使資料符合業務邏輯。以這種方式建立系統,在開發的時候,是非常快速的。但隨...

LingdotEMP的一步一步(1)

2007.10.18 夜 emp終於顫巍巍的立起來了。這許多天的努力,終於看到一點成果,心裡畢竟還是很高興的。想以前在學校的那些日子,雖然也很忙碌,卻不曾這樣做如此遠大規劃的事情。可能也是發展的乙個歷程吧。現在的emp還很不穩定。讓我想起蜘蛛俠3裡面的沙人,剛要站起來,卻又變成散沙,每一次起來都似乎...

一步一步建立GStreamer外掛程式

1 獲取建立外掛程式的模板gst template 方法一 cvs cvs d pserver anoncvs cvs.freedesktop.org cvs gstreamer login password root的密碼 cvs z3 d pserver anoncvs cvs.freedesk...