C# SQL函数中的两个日期参数

C# SQL函数中的两个日期参数,c#,asp.net,sql,sql-server,function,C#,Asp.net,Sql,Sql Server,Function,我有这样一页 在我的SQL中,我想计算这两天之间的一些值 这是我的密码 strQuery = @"SELECT B.HESAP_NO, A.TEKLIF_NO1 + '/' + A.TEKLIF_NO2 AS 'TEKLIF', B.MUS_K_ISIM, CONVERT(VARCHAR(10),A.ISL_TAR,103) AS 'TARIH', SUM(ISNULL(CAST(A.ODENEN_ANAPARA AS FLOAT),0)+ISNULL(CAST(A.FAIZ AS FLOA

我有这样一页

在我的
SQL
中,我想计算这两天之间的一些值

这是我的密码

strQuery = @"SELECT  B.HESAP_NO, A.TEKLIF_NO1 + '/' + A.TEKLIF_NO2 AS 'TEKLIF',
B.MUS_K_ISIM, CONVERT(VARCHAR(10),A.ISL_TAR,103) AS 'TARIH',
SUM(ISNULL(CAST(A.ODENEN_ANAPARA AS FLOAT),0)+ISNULL(CAST(A.FAIZ AS FLOAT),0)+
      ISNULL(CAST(A.BSMV AS FLOAT),0)+ISNULL(CAST(A.GECIKME_FAIZ AS FLOAT),0)+
      ISNULL(CAST(A.GECIKME_BSMV AS FLOAT),0)) AS 'YATAN', 
      (CASE WHEN B.DOVIZ_KOD = 21 THEN 'EUR' WHEN B.DOVIZ_KOD = 2 THEN 'USD' WHEN B.DOVIZ_KOD = 1 THEN 'TL' END) AS 'KUR',
      D.AVUKAT, 
     (CASE WHEN D.HESAP IN (SELECT T_HESAP_NO FROM TAKIP) THEN 
     (SELECT ICRA_TAR FROM TAKIP WHERE T_HESAP_NO = D.HESAP)
     ELSE ' ' END) AS 'ICRA TARİHİ', 
     (CASE WHEN D.HESAP IN (SELECT T_HESAP_NO FROM TAKIP) THEN 
     (SELECT HACIZ_TAR FROM TAKIP WHERE T_HESAP_NO = D.HESAP)
     ELSE '' END) AS 'HACİZ TARİHİ'
FROM YAZ..MARDATA.BIR_TAHSIL A, YAZ..MARDATA.S_TEKLIF B, AVUKAT D
WHERE A.TEKLIF_NO1 = B.TEKLIF_NO1
AND A.TEKLIF_NO2 = B.TEKLIF_NO2
AND B.HESAP_NO = D.HESAP
AND A.HESAP_NO = D.HESAP ";


    if (txtBoxText1 != "")
    {
        strQuery = strQuery + " AND A.ISL_TAR >= @S_TARIH_B";

      dt_stb = DateTime.Parse(txtBoxText1);
      myCommand.Parameters.AddWithValue("@S_TARIH_B", dt_stb);
    }

    if (txtBoxText2 != "")
    {
        strQuery = strQuery + " AND A.ISL_TAR <= @S_TARIH_S";
      dt_sts = DateTime.Parse(txtBoxText2);
      myCommand.Parameters.AddWithValue("@S_TARIH_S", dt_sts);
    }

    strQuery = strQuery + " GROUP BY B.HESAP_NO, A.TEKLIF_NO1 + '/' + A.TEKLIF_NO2,A.ISL_TAR,B.DOVIZ_KOD ,B.MUS_K_ISIM, D.AVUKAT, D.HESAP";
我想用这个函数在代码中得到一个值

@BAS
是开始日期,
@BIT
是结束日期


如何将
@BAS与Textbox1
关联,将
@BIT与Textbox2
关联?

您已经对代码做了类似的操作

strQuery = @"SELECT  fngcodeme(@HESAP, @BAS, @BIT, @DOV)";

dt_stb = DateTime.Parse(txtBoxText1);
myCommand.Parameters.AddWithValue("@BAS", dt_stb);
dt_sts = DateTime.Parse(txtBoxText2);
myCommand.Parameters.AddWithValue("@BIT", dt_sts)

// do it for @Hesap and @Dov

使用独立于语言的表单为命令的参数提供日期,因为无论登录用户使用何种语言,该表单都会起作用。以下是用于指定日期参数的独立于语言的格式列表

对于
DATETIME
使用:“yyyyymmdd hh:mm:ss.nnn”、“YYYY-mm-DDThh:mm:ss.nnn”、“yyyyymmdd” 对于
SMALLDATETIME
使用:“yyyyymmdd hh:mm”、“YYYY-mm-DDThh:mm”、“yyyyymmdd” 对于日期使用“'YYYYMMDD','YYYY-MM-DD'

DateTime.Parse
依赖于当前区域性,当前区域性可能会以不同方式解析文本框中的字符串,因此使用独立于语言的表单会更好

strQuery = @"SELECT  fngcodeme(@HESAP, @BAS, @BIT, @DOV)";

dt_stb = DateTime.Parse(txtBoxText1);
myCommand.Parameters.AddWithValue("@BAS", dt_stb);
dt_sts = DateTime.Parse(txtBoxText2);
myCommand.Parameters.AddWithValue("@BIT", dt_sts)

// do it for @Hesap and @Dov