使用visual studio 2010我正在开发一个vb.net应用程序,我需要在表中存储超过10000条记录。表格格式为
|empno |year |january|february| march |april |may |june |july |august |September |october |november |december| total|
示例数据:
101 2010 10000 15000 25000
101 2011 15000 20000 35000
101 2012 20000 25000 45000
101 2013 25000 30000 55000
102 2008 1000 1500 2500
102 2009 1500 2000 3500
102 2010 10000 15000 25000
102 2011 15000 20000 35000
102 2012 20000 25000 45000
102 2013 25000 30000 55000
现在的问题是当我将数据插入此表时,它无法正确存储。我的意思是,似乎是
102 2012 20000 25000 45000
101 2010 10000 15000 25000
101 2011 15000 20000 35000
101 2012 20000 25000 45000
101 2013 25000 30000 55000
102 2008 1000 1500 2500
102 2009 1500 2000 3500
102 2010 10000 15000 25000
102 2011 15000 20000 35000
102 2013 25000 30000 55000
在每组数据中,年度记录中的一个存储在表格的顶部。因此,当我显示特定员工的记录时,它不会正确显示(我的意思是不按顺序)。例如:对于empno 102,结果就像
102 2012 20000 25000 45000
102 2008 1000 1500 2500
102 2009 1500 2000 3500
102 2010 10000 15000 25000
102 2011 15000 20000 35000
102 2013 25000 30000 55000
我认为按年份排序不是解决方案。因为,它有一年的许多记录。
我检查了所有记录。只有一些记录有这个问题。我对这个问题一无所知,怎么解决。任何人都可以为什么这样做以及如何避免?
提前致谢
编辑:代码
If yodor1 <= 2015 Then
up = 2015
ElseIf yodor1 <= 2025 Then
up = 2025
ElseIf yodor1 <= 2035 Then
up = 2035
ElseIf yodor1 <= 2045 Then
up = 2045
End If
con.Open()
txt = "select * from pension where empno='" & TextBox5.Text & "' "
cmd = New SqlCommand(txt, con)
reader = cmd.ExecuteReader()
While reader.Read
If yodor1 <= up Then
flag = False
display2.grid1.set_TextMatrix(a, 0, reader("year"))
display2.grid1.set_TextMatrix(a, 1, reader("january"))
display2.grid1.set_TextMatrix(a, 2, reader("february"))
display2.grid1.set_TextMatrix(a, 3, reader("march"))
display2.grid1.set_TextMatrix(a, 4, reader("april"))
display2.grid1.set_TextMatrix(a, 5, reader("may"))
display2.grid1.set_TextMatrix(a, 6, reader("june"))
display2.grid1.set_TextMatrix(a, 7, reader("july"))
display2.grid1.set_TextMatrix(a, 8, reader("august"))
display2.grid1.set_TextMatrix(a, 9, reader("septemper"))
display2.grid1.set_TextMatrix(a, 10, reader("october"))
display2.grid1.set_TextMatrix(a, 11, reader("november"))
display2.grid1.set_TextMatrix(a, 12, reader("december"))
a = a + 1
yodor1 = yodor1 + 1
ElseIf yodor1 <= (up + 10) Then
flag = False
display2.grid2.set_TextMatrix(b, 0, reader("year"))
display2.grid2.set_TextMatrix(b, 1, reader("january"))
display2.grid2.set_TextMatrix(b, 2, reader("february"))
display2.grid2.set_TextMatrix(b, 3, reader("march"))
display2.grid2.set_TextMatrix(b, 4, reader("april"))
display2.grid2.set_TextMatrix(b, 5, reader("may"))
display2.grid2.set_TextMatrix(b, 6, reader("june"))
display2.grid2.set_TextMatrix(b, 7, reader("july"))
display2.grid2.set_TextMatrix(b, 8, reader("august"))
display2.grid2.set_TextMatrix(b, 9, reader("septemper"))
display2.grid2.set_TextMatrix(b, 10, reader("october"))
display2.grid2.set_TextMatrix(b, 11, reader("november"))
display2.grid2.set_TextMatrix(b, 12, reader("december"))
b = b + 1
yodor1 = yodor1 + 1
ElseIf yodor1 <= (yodor + 19) Then
flag = False
DISPLAY3.grid2.set_TextMatrix(f, 0, reader("year"))
DISPLAY3.grid2.set_TextMatrix(f, 1, reader("january"))
DISPLAY3.grid2.set_TextMatrix(f, 2, reader("february"))
DISPLAY3.grid2.set_TextMatrix(f, 3, reader("march"))
DISPLAY3.grid2.set_TextMatrix(f, 4, reader("april"))
DISPLAY3.grid2.set_TextMatrix(f, 5, reader("may"))
DISPLAY3.grid2.set_TextMatrix(f, 6, reader("june"))
DISPLAY3.grid2.set_TextMatrix(f, 7, reader("july"))
DISPLAY3.grid2.set_TextMatrix(f, 8, reader("august"))
DISPLAY3.grid2.set_TextMatrix(f, 9, reader("septemper"))
DISPLAY3.grid2.set_TextMatrix(f, 10, reader("october"))
DISPLAY3.grid2.set_TextMatrix(f, 11, reader("november"))
DISPLAY3.grid2.set_TextMatrix(f, 12, reader("december"))
f = f + 1
yodor1 = yodor1 + 1
ElseIf yodor1 < (yodor + 30) Then
flag = False
DISPLAY3.grid1.set_TextMatrix(c, 0, reader("year"))
DISPLAY3.grid1.set_TextMatrix(c, 1, reader("january"))
DISPLAY3.grid1.set_TextMatrix(c, 2, reader("february"))
DISPLAY3.grid1.set_TextMatrix(c, 3, reader("march"))
DISPLAY3.grid1.set_TextMatrix(c, 4, reader("april"))
DISPLAY3.grid1.set_TextMatrix(c, 5, reader("may"))
DISPLAY3.grid1.set_TextMatrix(c, 6, reader("june"))
DISPLAY3.grid1.set_TextMatrix(c, 7, reader("july"))
DISPLAY3.grid1.set_TextMatrix(c, 8, reader("august"))
DISPLAY3.grid1.set_TextMatrix(c, 9, reader("septemper"))
DISPLAY3.grid1.set_TextMatrix(c, 10, reader("october"))
DISPLAY3.grid1.set_TextMatrix(c, 11, reader("november"))
DISPLAY3.grid1.set_TextMatrix(c, 12, reader("december"))
c = c + 1
yodor1 = yodor1 + 1
End If
End While
reader.Close()
con.Close()
答案 0 :(得分:1)
首先,您最好使用参数化查询来阻止SQL Injection。在查询中添加ORDER BY
子句,按year
试试这个:
txt = "select * from pension where empno= @empno ORDER BY year"
cmd = New SqlCommand(txt, con)
cmd.Parameters.AddWithValue("@empno", TextBox5.Text)
答案 1 :(得分:0)
最后我找到了答案。我使用过Clear()方法
display2.grid1.clear()
display2.grid2.clear()
DISPLAY3.grid1.clear()
DISPLAY3.grid2.clear()
现在我的问题解决了