繁体   English   中英

我需要一个 SQL 查询来获取具有用户设置的变量值的数据库行和列的值

[英]I Need a SQL query to get the value form database row & column with variable value set by the user

我需要一个 SQL 查询来获取具有用户设置的变量值的数据库行和列的值。
我通过@"SELECT MONTH(CURRENT_TIMESTAMP)"获得月份范围的值

但是我没有得到用户设置的变量值形式的数据库行和列的值

代码

private void cashReceiptVoucherToolStripMenuItem_Click(object sender, EventArgs e) 
{

  lblTyp = "CR -";
  sqlConn = new SqlConnection(connstring);

  string typ = "NCR";

  string QMonth1 = @"SELECT * FROM av WHERE vtype ='" + typ.ToString() + "';";

  SqlCommand SqlCmd1 = new SqlCommand(QMonth1, sqlConn);

  try 
  {
    sqlConn.Open();

    SqlCmd = new SqlCommand(@"SELECT MONTH(CURRENT_TIMESTAMP) ", sqlConn);
    var month = (int)SqlCmd.ExecuteScalar();
    string QMonth = $"M{month}";

    dataReader = SqlCmd1.ExecuteReader();

    while (dataReader.Read()) 
    {
      var vtype = dataReader["vtype"] as string;
      var Mon1 = dataReader["M1"] as string;
      var Mon2 = dataReader["M2"] as string;
      var Mon3 = dataReader["M3"] as string;
      var Mon4 = dataReader["M4"] as string;
      var Mon5 = dataReader["M5"] as string;
      var Mon6 = dataReader["M6"] as string;

      Vno = Mon4;
    }
  } 
  catch (SqlException ex) 
  {
    MessageBox.Show(ex.Message);
  }

  DataEntryVType.ShowDialog();
}

图片说明在这里

要为您的 sql 查询提供参数,最佳做法是使用SqlParameter如下面的代码所示

private void cashReceiptVoucherToolStripMenuItem_Click(object sender, EventArgs e)
{

    lblTyp = "CR -";
    sqlConn = new SqlConnection(connstring);

    string typ = "NCR";
    string QMonth1 = @"SELECT * FROM av WHERE vtype =@vtype";

    SqlCommand SqlCmd1 = new SqlCommand(QMonth1, sqlConn);

    try
    {
        sqlConn.Open();

        SqlCmd = new SqlCommand(@"SELECT MONTH(CURRENT_TIMESTAMP) ", sqlConn);
        var month = (int)SqlCmd.ExecuteScalar();
        string QMonth = $"M{month}";

        // adding parameter to sql query
        SqlParameter param = new SqlParameter();
        param.ParameterName = "@vtype";
        param.Value = typ;
        SqlCmd1.Parameters.Add(param);

        dataReader = SqlCmd1.ExecuteReader();

        while (dataReader.Read())
        {
            var vtype = dataReader["vtype"] as string;
            var Mon1 = dataReader["M1"] as string;
            var Mon2 = dataReader["M2"] as string;
            var Mon3 = dataReader["M3"] as string;
            var Mon4 = dataReader["M4"] as string;
            var Mon5 = dataReader["M5"] as string;
            var Mon6 = dataReader["M6"] as string;

            Vno = Mon4;
        }
    }
    catch (SqlException ex)
    {
        MessageBox.Show(ex.Message);
    }

    DataEntryVType.ShowDialog();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM