Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我想创建一个可以很好地计算的命令_C#_.net_Sql - Fatal编程技术网

C# 我想创建一个可以很好地计算的命令

C# 我想创建一个可以很好地计算的命令,c#,.net,sql,C#,.net,Sql,我正在为我的项目开发一个图书馆系统。我的顾问要我计算逾期书的罚款。我有3个文本框,一个用于学生id、书名和isbn,还有两个日期选择器;一个是日期,一个是到期日。我想要一个创建一个命令,如果借书人没有在到期日归还书,该命令将计算罚款,并将罚款输入我的表“借书”列“罚款” 这是我的代码: string constring = ("Data Source=.\\SQLEXPRESS;Integrated Security=True"); SqlConnection con = ne

我正在为我的项目开发一个图书馆系统。我的顾问要我计算逾期书的罚款。我有3个文本框,一个用于学生id、书名和isbn,还有两个日期选择器;一个是日期,一个是到期日。我想要一个创建一个命令,如果借书人没有在到期日归还书,该命令将计算罚款,并将罚款输入我的表“借书”列“罚款”

这是我的代码:

string constring = ("Data Source=.\\SQLEXPRESS;Integrated Security=True");

        SqlConnection con = new SqlConnection(constring);
        con.Open();
        SqlCommand cmd = new SqlCommand("SELECT  [Student ID], ISBN, Title, Date, [Due Date], Penalty FROM    Borrowbook;", con);


        try
        {
            SqlDataAdapter sda = new SqlDataAdapter();
            sda.SelectCommand = cmd;
            DataTable Records = new DataTable();
            sda.Fill(Records);
            BindingSource bsource = new BindingSource();

            bsource.DataSource = Records;
            dataGridView1.DataSource = bsource;
            sda.Update(Records);


        }
        catch (Exception ex)
        {

            MessageBox.Show(ex.Message);
        }
        if (dateTimePicker2.Value < DateTime.Now)
        {
            cmd.CommandText = "INSERT INTO Borrowbook (Penalty) VALUES  (@Penalty)";
            SqlParameter p1 = new SqlParameter("@Penalty", SqlDbType.Date);
            p1.Value = 50;
            cmd.Parameters.Add(p1);
            cmd.ExecuteNonQuery();

        }
    }
string constring=(“数据源=。\\SQLEXPRESS;集成安全性=True”);
SqlConnection con=新的SqlConnection(构造);
con.Open();
SqlCommand cmd=new-SqlCommand(“选择[Student ID]、ISBN、标题、日期、[到期日]、借书惩罚;”,con);
尝试
{
SqlDataAdapter sda=新的SqlDataAdapter();
sda.SelectCommand=cmd;
DataTable记录=新的DataTable();
sda.填写(记录);
BindingSource bsource=新的BindingSource();
bsource.DataSource=记录;
dataGridView1.DataSource=bsource;
sda.更新(记录);
}
捕获(例外情况除外)
{
MessageBox.Show(例如Message);
}
if(dateTimePicker2.ValueSqlParameter p1=新的SqlParameter(“@penal”,SqlDbType.Date);
p1.数值=50;
cmd.Parameters.Add(p1);
cmd.ExecuteNonQuery();
}
}

此代码不工作,但运行正常,没有任何错误。但我认为这是我的代码的想法。我将此代码放在按钮中,datagridview也将显示我的数据

您尚未执行查询

你需要:

cmd.ExecuteNonQuery();
您还需要一个指向正确的
sqlserver
数据库的
SqlConnection
对象


另外要注意的是,您的数据库模式看起来有点模糊,您如何知道是谁受到了惩罚?您没有插入任何其他标识符,只有罚款金额

您在哪里执行SQL语句?你甚至在代码中的任何地方都使用过吗?你对哪个读者适用罚款?我编辑了我的帖子,现在我有一个错误。它表示“无法将参数值从Int32转换为datetime。此错误发生在cmd.ExecuteNonQuery()上;我有sqlconnection,但我没有将其包含在我的帖子中。@JonSy-好吧-你需要使用我在Answer中提供的内容执行
cmd
。我编辑了我的帖子,现在我有一个错误。它表示“无法将参数值从Int32转换为datetime。此错误发生在cmd.ExecuteNonQuery()上;SqlParameter p1=新的SqlParameter(“@penal”,SqlDbType.Date);需要是SqlParameter p1=newsqlparameter(“@pulture”,SqlDbTybe.Int);