1、關於條碼的設計
前六位爲貨物的款式代號,從100000開始至999999止。
後四位爲此款貨物的流水號,從1000至9999
前六位爲SQL SERVER 2000 自動編號產生,可能用到的技術 select max(id)
後四位的流水號,爲批量提交時C#計算產生,然後用ASP.NET的批量錄入功能錄入。
2、 技術細節
批量錄入到數據庫
System.Data.SqlClient.SqlConnection cnn = new System.Data.SqlClient.SqlConnection("連接字符串");
System.Data.SqlClient.SqlCommand cm = new System.Data.SqlClient.SqlCommand();
cm.Connection = cnn;
cm.CommandText = "select top 10 * from table1";
System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(cm);
DataTable dt = new DataTable();
da.Fill(dt);
da.FillSchema(dt,System.Data.SchemaType.Mapped);//這是必須的,要載入數據表結構
//下面插入多條數據
for(int i=0;i<10;i++)
{
DataRow newRow = dt.NewRow();
newRow[0] = 123;
newRow[1] = "abc";
//....
dt.Rows.Add(newRow);
}
//下面重新寫回數據庫
System.Data.SqlClient.SqlCommandBuilder cb = new System.Data.SqlClient.SqlCommandBuilder(da);//這句看起來沒什麼作用,但實際上很關鍵,如果沒有這個就不能用da.Update方法
cnn.Open();
da.Update(dt);
cnn.Close();
dt.AcceptChanges();
3、錄入同一種貨物時,用DataTable做數據緩衝,在客戶端用GridView顯示出來,最後批量更新到數據庫中,用javascript將貨物編號導入到word的條碼模板裏,打印。
<html>
<script type="text/javascript">
<!--
function clip(text){
str=eval("document." + text)
str.select()
str = document.selection.createRange();
clipboardData.setData('text',(str.text));
}
//-->
</script>
<form name="form">
<a href="javascript:clip('form.copy')">
複製到剪貼板</a><br>
<textarea rows="16" cols="40" name="copy"></textarea>
</form>
</html>