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>