110,561
社区成员
发帖
与我相关
我的任务
分享
class Program
{
static void Main(string[] args)
{
List<string> items = new List<string>(
new string[]{
"3","31","311","3117","add","delete","update","select","revert","312","3121","add","delete","update","select","revert","313","3131","revert","3132","add"
});
int id = 17;
//用于模拟你的数据库表结构
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("ID", typeof(int)));
dt.Columns.Add(new DataColumn("UserID", typeof(int)));
dt.Columns.Add(new DataColumn("PurviewID", typeof(string)));
dt.Columns.Add(new DataColumn("Opreate", typeof(string)));
//正文
Regex regex = new Regex(@"[0-9]+");
string[] last = null; //顺序:s, "add", "delete", "update", "select", "revert"
int i = default(int);
string s = null;
for (int j = 0; j <= items.Count; j++)
{
if (j < items.Count && (s = items[j]) != null && !regex.IsMatch(s))
{
if (s.Equals("add")) last[1] = "1";
else if (s.Equals("delete")) last[2] = "1";
else if (s.Equals("update")) last[3] = "1";
else if (s.Equals("select")) last[4] = "1";
else if (s.Equals("revert")) last[5] = "1";
}
else
{
if (last != null)
{
dt.Rows.Add(new object[] {
i++, //ID
id, //UserID
last[0], //PurviewID
string.Format("{0}{1}{2}{3}{4}", last[1], last[2], last[3], last[4], last[5]) //Opreate
}); //这里应该替换成插入数据库的语句
}
last = new string[] { s, "0", "0", "0", "0", "0" };
}
}
//打印调试信息
foreach (DataRow dr in dt.Rows)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
System.Console.Write(string.Format("{0}\t", dr[j]));
}
System.Console.WriteLine(string.Empty);
}
System.Console.ReadKey();
}
}
if(item==string.Empty) item=items[items.Count-1];
static void Test(List<string> items)
{
int flag = 0;
string item=string.Empty;
for (int i = 1; i < items.Count; i++)
{
if (flag == 0) item = items[i - 1];
switch (items[i])
{
case "add": flag += 10000; break;
case "delete": flag += 1000; break;
case "update": flag += 100; break;
case "select": flag += 10; break;
case "revert": flag += 1; break;
default:
//写入数据库的操作,item是PurviewID,flag是Opreate
Console.WriteLine(item + "," + (flag == 0 ? "" : flag.ToString("D5")));
flag = 0; item = string.Empty; break;
}
}
Console.WriteLine(item + "," + (flag == 0 ? "" : flag.ToString("D5")));
//将最后一项写入数据库,item是PurviewID,flag是Opreate
}
/*控制台输出:(仅输出PurviewID,Opreate)
3,
31,
311,
3117,11111
312,
3121,11111
313,
3131,00001
3132,10000
*/
void Test(List<string> items)
{
int flag = 0;
string item=string.Empty;
for (int i = 1; i < items.Count; i++)
{
if (flag == 0) item = items[i - 1];
switch (items[i])
{
case "add": flag += 1; break;
case "delete": flag += 10; break;
case "update": flag += 100; break;
case "select": flag += 1000; break;
case "revert": flag += 10000; break;
default:
//写入数据库的操作,item是PurviewID,flag是Opreate
flag = 0; item = string.Empty; break;
}
}
//将最后一项写入数据库,item是PurviewID,flag是Opreate
}