大家好我是c#和sql的新手,我在c#中创建了一个Windows应用程序,它允许用户在每天上午7点到晚上7点之间不在数据库中插入相同的信息,应用程序必须允许用户不要在这个时间间隔和晚上7点到晚上的同一件事之间插入相同的信息....如果用户试图在这个间隔之间插入相同的数据,则应弹出一条信息说“信息已经存在”为了这个转变'。
这是我的代码到目前为止它可以插入数据库的 SAVE 按钮我需要有人帮助我在哪里以及如何添加此功能以允许用户不要插入相同的信息每个班次在早上7点到晚上7点之间的数据库,或者是否有另一种方式。有人能帮助我吗?
private void button1_Click(object sender, EventArgs e)
{
//................INSERT TO DATABASE...........................................................
if ((!string.IsNullOrWhiteSpace(comboBox1.Text)) & (!string.IsNullOrWhiteSpace(textBox10.Text)) & (!string.IsNullOrWhiteSpace(textBox9.Text))& (!string.IsNullOrWhiteSpace(textBox6.Text))& (!string.IsNullOrWhiteSpace(textBox8.Text))& (!string.IsNullOrWhiteSpace(textBox13.Text))& (!string.IsNullOrWhiteSpace(textBox7.Text))& (!string.IsNullOrWhiteSpace(textBox3.Text))& (!string.IsNullOrWhiteSpace(textBox2.Text)))
{
string buffer = textBox10.Text;
string buffer1 = textBox9.Text;
string buffer2 = textBox6.Text;
string buffer3 = textBox7.Text;
string buffer4 = textBox8.Text;
double val = Double.Parse(buffer, System.Globalization.CultureInfo.InvariantCulture);
double val1 = Double.Parse(buffer1, System.Globalization.CultureInfo.InvariantCulture);
double val2 = Double.Parse(buffer2, System.Globalization.CultureInfo.InvariantCulture);
double val3 = Double.Parse(buffer3, System.Globalization.CultureInfo.InvariantCulture);
double val4 = Double.Parse(buffer4, System.Globalization.CultureInfo.InvariantCulture);
if (val > 59 && val < 161 && val1 > 99 && val1 < 301 && val2>2&&val2<7 && val3>2 && val3<7 && val4>2 && val2<4)
{
float em1 = float.Parse(textBox6.Text, System.Globalization.CultureInfo.InvariantCulture);
float em2 = float.Parse(textBox7.Text, System.Globalization.CultureInfo.InvariantCulture);
float em3 = float.Parse(textBox8.Text, System.Globalization.CultureInfo.InvariantCulture);
float ava = float.Parse(textBox13.Text, System.Globalization.CultureInfo.InvariantCulture);
int bond = int.Parse(textBox9.Text, System.Globalization.CultureInfo.InvariantCulture);
int feed = int.Parse(textBox10.Text, System.Globalization.CultureInfo.InvariantCulture);
string Connection = @"Data Source=NZUZO\SQLEXPRESS;Initial Catalog=Checksheet;Integrated Security=True";
string query = "insert into SJB (Machine_Cleanliness,Safety_System,Single_Mode,SJB_Fixture,Feed_Pressure,Bond_Height,Line_NO,Machine_NO,Product,Suspension,Capilary_Lifetime,EM_Trial1,EM_Trial2,EM_Trial3,Avarage,EN,Shift) values(@Machine_C ,@Safety, @SingleMode,@SJB_Fixture,'" + feed + "','" + bond + "','" + this.textBox12.Text + "','" + this.textBox4.Text + "','" + this.textBox1.Text + "','" + this.textBox11.Text + "','" + this.textBox3.Text + "','" + em1 + "','" + em2 + "','" + em3 + "','" + ava + "','" + this.textBox2.Text + "','" + this.label5.Text + "')";
SqlConnection conn = new SqlConnection(Connection);
SqlCommand conn1 = new SqlCommand(query, conn);
//select getdate()");
conn1.Connection = conn;
//String selection = new string(MyChar, 1);
//conn1.Parameters.AddWithValue("@Safety", selection);
SqlDataReader myReader;
// conn1.CommandType = CommandType.StoredProcedure;
using (var command = new SqlCommand("Checksheet1", conn)
{
CommandType = CommandType.StoredProcedure
})
// recordCount > 0;
// radioButton6 = radioButton6.checked;
if (radioButton6.Checked)
{
// selection = "G";
conn1.Parameters.AddWithValue("@Safety", "G");
}
else if (radioButton5.Checked)
// selection = "N";
conn1.Parameters.AddWithValue("@Safety", "N");
if (radioButton11.Checked)
{
conn1.Parameters.AddWithValue("@Machine_C", "G");
}
else if (radioButton12.Checked)
conn1.Parameters.AddWithValue("@Machine_C", "N");
if (radioButton13.Checked)
{
conn1.Parameters.AddWithValue("@SingleMode", "G");
}
else if (radioButton14.Checked)
conn1.Parameters.AddWithValue("@SingleMode", "N");
if (radioButton1.Checked)
{
conn1.Parameters.AddWithValue("@SJB_Fixture", "G");
}
else if (radioButton2.Checked)
{
conn1.Parameters.AddWithValue("@SJB_Fixture", "N");
}
try
{
conn.Open();
// conn1.ExecuteNonQuery();
myReader = conn1.ExecuteReader();
MessageBox.Show("Machine Checked......");
this.Close();
while (myReader.Read())
{
// conn1.Parameters.AddWithValue("@Line_No",textBox12);
// bool test=false;
//int hour = DateTime.Now.Hour;
// test = (myReader !=null && myReader.HasRows);
}
conn.Close();
}
catch (Exception es)
{
MessageBox.Show(es.Message);
}
}
else
{
MessageBox.Show("Error.... Invalid Value in The check List.", "Check Sheet", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
else
{
MessageBox.Show("Cannot Submit Checklist...Please check for empty space", "Check Sheet", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
答案 0 :(得分:0)
我认为您需要向数据库添加另一个调用,检查条件下是否已存在行。例如:
select * from table where user_id = 10;
如果行返回意味着用户已经将数据插入表中,您还可以检查用户插入的具体日期......
答案 1 :(得分:0)
好的只是这个问题的简单解决方案,至少我认为这是一个简单的解决方案;)。
首先只提供文本框名称。它更容易阅读,如果有些错误,你会更快地理解为什么它的错误。
因此,如果你有一个用于用户名的文本框,就这样做:
string username = usernameTextbox.Text;
那为什么这么多缓冲?
只需制作一个List<string> buffer = new List<string>
以下是有关列表的示例:http://www.dotnetperls.com/list
现在要解决这个问题,你必须选择Proxytype指出的那个。
您可以在添加数据时将日期时间插入数据库。然后,当你得到另一个请求时,检查是否已经过了x个时间量,如果它已经做了什么,否则不做任何事情并将其指向用户
答案 2 :(得分:0)
如果您只想根据时间进行检查,那么您可以检查系统日期时间属性。