@@ -307,126 +307,6 @@ public static void TestParametersWithDatatablesTVPInsert()
307307 }
308308 }
309309
310- #if ! NETFRAMEWORK
311-
312- [ ConditionalFact ( typeof ( DataTestUtility ) , nameof ( DataTestUtility . AreConnStringsSetup ) , nameof ( DataTestUtility . IsNotAzureSynapse ) ) ]
313- public static void TestDateOnlyTVPDataTable_CommandSP ( )
314- {
315- string tableTypeName = "[dbo]." + DataTestUtility . GetLongName ( "UDTTTestDateOnlyTVP" ) ;
316- string spName = DataTestUtility . GetLongName ( "spTestDateOnlyTVP" ) ;
317- SqlConnection connection = new ( s_connString ) ;
318- try
319- {
320- connection . Open ( ) ;
321- using ( SqlCommand cmd = connection . CreateCommand ( ) )
322- {
323- cmd . CommandType = CommandType . Text ;
324- cmd . CommandText = $ "CREATE TYPE { tableTypeName } AS TABLE ([DateColumn] date NULL, [TimeColumn] time NULL)";
325- cmd . ExecuteNonQuery ( ) ;
326- cmd . CommandText = $ "CREATE PROCEDURE { spName } (@dates { tableTypeName } READONLY) AS SELECT COUNT(*) FROM @dates";
327- cmd . ExecuteNonQuery ( ) ;
328- }
329- using ( SqlCommand cmd = connection . CreateCommand ( ) )
330- {
331- cmd . CommandText = spName ;
332- cmd . CommandType = CommandType . StoredProcedure ;
333-
334- DataTable dtTest = new ( ) ;
335- dtTest . Columns . Add ( new DataColumn ( "DateColumn" , typeof ( DateOnly ) ) ) ;
336- dtTest . Columns . Add ( new DataColumn ( "TimeColumn" , typeof ( TimeOnly ) ) ) ;
337- var dataRow = dtTest . NewRow ( ) ;
338- dataRow [ "DateColumn" ] = new DateOnly ( 2023 , 11 , 15 ) ;
339- dataRow [ "TimeColumn" ] = new TimeOnly ( 12 , 30 , 45 ) ;
340- dtTest . Rows . Add ( dataRow ) ;
341-
342- cmd . Parameters . Add ( new SqlParameter
343- {
344- ParameterName = "@dates" ,
345- SqlDbType = SqlDbType . Structured ,
346- TypeName = tableTypeName ,
347- Value = dtTest ,
348- } ) ;
349-
350- cmd . ExecuteNonQuery ( ) ;
351- }
352- }
353- finally
354- {
355- DataTestUtility . DropStoredProcedure ( connection , spName ) ;
356- DataTestUtility . DropUserDefinedType ( connection , tableTypeName ) ;
357- }
358- }
359-
360- [ ConditionalFact ( typeof ( DataTestUtility ) , nameof ( DataTestUtility . AreConnStringsSetup ) , nameof ( DataTestUtility . IsNotAzureSynapse ) ) ]
361- public static void TestDateOnlyTVPSqlDataRecord_CommandSP ( )
362- {
363- string tableTypeName = "[dbo]." + DataTestUtility . GetLongName ( "UDTTTestDateOnlySqlDataRecordTVP" ) ;
364- string spName = DataTestUtility . GetLongName ( "spTestDateOnlySqlDataRecordTVP" ) ;
365- SqlConnection connection = new ( s_connString ) ;
366- try
367- {
368- connection . Open ( ) ;
369- using ( SqlCommand cmd = connection . CreateCommand ( ) )
370- {
371- cmd . CommandType = CommandType . Text ;
372- cmd . CommandText = $ "CREATE TYPE { tableTypeName } AS TABLE ([DateColumn] date NULL, [TimeColumn] time NULL)";
373- cmd . ExecuteNonQuery ( ) ;
374- cmd . CommandText = $ "CREATE PROCEDURE { spName } (@dates { tableTypeName } READONLY) AS SELECT COUNT(*) FROM @dates";
375- cmd . ExecuteNonQuery ( ) ;
376- }
377- using ( SqlCommand cmd = connection . CreateCommand ( ) )
378- {
379- cmd . CommandText = spName ;
380- cmd . CommandType = CommandType . StoredProcedure ;
381-
382- SqlMetaData [ ] metadata = new SqlMetaData [ ]
383- {
384- new SqlMetaData ( "DateColumn" , SqlDbType . Date ) ,
385- new SqlMetaData ( "TimeColumn" , SqlDbType . Time )
386- } ;
387-
388- SqlDataRecord record1 = new SqlDataRecord ( metadata ) ;
389- record1 . SetValues ( new DateOnly ( 2023 , 11 , 15 ) , new TimeOnly ( 12 , 30 , 45 ) ) ;
390-
391- SqlDataRecord record2 = new SqlDataRecord ( metadata ) ;
392- record2 . SetValues ( new DateOnly ( 2025 , 11 , 15 ) , new TimeOnly ( 13 , 31 , 46 ) ) ;
393-
394- IList < SqlDataRecord > featureInserts = new List < SqlDataRecord >
395- {
396- record1 ,
397- record2 ,
398- } ;
399-
400- cmd . Parameters . Add ( new SqlParameter
401- {
402- ParameterName = "@dates" ,
403- SqlDbType = SqlDbType . Structured ,
404- TypeName = tableTypeName ,
405- Value = featureInserts ,
406- } ) ;
407-
408- using var reader = cmd . ExecuteReader ( ) ;
409-
410- Assert . True ( reader . HasRows ) ;
411-
412- int count = 0 ;
413- while ( reader . Read ( ) )
414- {
415- Assert . NotNull ( reader [ 0 ] ) ;
416- count ++ ;
417- }
418-
419- Assert . Equal ( 1 , count ) ;
420- }
421- }
422- finally
423- {
424- DataTestUtility . DropStoredProcedure ( connection , spName ) ;
425- DataTestUtility . DropUserDefinedType ( connection , tableTypeName ) ;
426- }
427- }
428- #endif
429-
430310 #region Scaled Decimal Parameter & TVP Test
431311 [ ConditionalTheory ( typeof ( DataTestUtility ) , nameof ( DataTestUtility . AreConnStringsSetup ) ) ]
432312 [ InlineData ( "CAST(1.0 as decimal(38, 37))" , "1.0000000000000000000000000000" ) ]
0 commit comments