none
Typed DataSets, Nullables and AddRow RRS feed

  • Question

  • Hi,

    I have a typed dataset that contains nullable columns. I'm wondering if it is possible to use the typed AddRow function to directly add NULLs. For example, if I have a DataSet with a DataTable1 and 2 nullable columns (named NullableInt and NullableDate), the following code gives unexpected results:

      Sub Main()
        Dim myDS As New DataSet1
        myDS.DataTable1.AddDataTable1Row(Nothing, Nothing)
        Console.WriteLine(myDS.DataTable1(0).IsNullableIntNull & " " & myDS.DataTable1(0).IsNullableDateNull)
      End Sub
    

    This will write "false false" in the console, whereas I expect both columns to be Nulls and return True True. I tried using DBNull.Value instead, but this gives me a type cast error. The workaround I found was to use the SetNull functions after creating the new row. That's pretty weak, and unnecessary. Is there any reason why AddRow doesn't use nullable types for columns that allow nulls?

    Thank you.

    Thursday, November 18, 2010 4:46 PM

Answers

  • Hi, Billy have you tried something like this? It's a console application with a typed data set named MyDataSet, a data table called MyTable and two columns: NullableInt and NullableDate.

      Sub Main()
    
        Try
          Dim myDS As New MyDataSet
    
          myDS.MyTable.Rows.Add(Nothing, Nothing)
          Dim firstRow As MyDataSet.MyTableRow = CType(myDS.MyTable.Rows(0), MyDataSet.MyTableRow)
    
          Console.WriteLine("Analyzing firstRow...")
          If firstRow.IsNull("NullableInt") Then
            Console.WriteLine(vbTab & "NullableInt is null.")
          End If
          If firstRow.IsNull("NullableDate") Then
            Console.WriteLine(vbTab & "NullableDate is null.")
          End If
    
          myDS.MyTable.Rows.Add(DBNull.Value, DBNull.Value)
          Dim secondRow As MyDataSet.MyTableRow = CType(myDS.MyTable.Rows(1), MyDataSet.MyTableRow)
    
          Console.WriteLine("Analyzing secondRow...")
          If secondRow.IsNull("NullableInt") Then
            Console.WriteLine(vbTab & "NullableInt is null.")
          End If
          If secondRow.IsNull("NullableDate") Then
            Console.WriteLine(vbTab & "NullableDate is null.")
          End If
    
          Dim someInt As Integer = Nothing
          Dim someDate As Date = Nothing
          Dim thirdRow As MyDataSet.MyTableRow
          thirdRow = myDS.MyTable.NewMyTableRow
          thirdRow.NullableInt = someInt
          thirdRow.NullableDate = someDate
          myDS.MyTable.Rows.Add(thirdRow)
    
          Console.WriteLine("Analyzing thirdRow...")
          If thirdRow.IsNull("NullableInt") Then
            Console.WriteLine(vbTab & "NullableInt is null.")
          Else
            Console.WriteLine(vbTab & "NullableInt isn't null and its value is {0}.", thirdRow.NullableInt)
          End If
          If thirdRow.IsNull("NullableDate") Then
            Console.WriteLine(vbTab & "NullableDate is null.")
          Else
            Console.WriteLine(vbTab & "NullableDate isn't null and its value is {0}.", thirdRow.NullableDate)
          End If
        Catch ex As Exception
          Console.WriteLine(ex.Message)
        End Try
    
        Console.ReadLine()
    
      End Sub
    

    See this article: 'Everybody's favorite topic - NULL '. I'm working on modifying the MyTableRow class so it accepts values of type Object.

    Kind regards,

    Carlos Mallen

    Monday, November 29, 2010 10:02 PM
  • Your example reshows what my issue is: your first and second adds uses the untyped Add function, which defeats the purpose of typed dataset. The third one fails. The article you link seems to provide the answer though: Microsoft DID try to use nullables with DataSets, but .Net boxing became an issue and made for an even worse solution.

    So the answer is: It just doesn't work. Deal with it.

    Thank you all for your help.

    Tuesday, November 30, 2010 1:49 PM

All replies

  • Hello,

    I'm not very clear about your typed dataset, however, it seems that you checked your myDS.DataTable(0)  not the columns in your datatable.

    I suggest you set a breakpoint on the line and check if the column is dbnull. By default, you may paste the following code snippet to test:

    Dim ds as New DataSet
    Dim dt as New DataTable
    dt.Columns.Add("ID", Type.GetType("System.Int32"))
    dt.Columns.Add("Name", Type.GetType("System.String"))
    dt.Columns("Name").AllowDBNull = true
    dt.Rows.Add(1, "Hello")
    dt.Rows.Add(2, Nothing)
    dt.Rows.Add(3, "world")
    
    ds.Tables.Add(dt)
    If ds.Tables(0).Rows(1)(1) Is DBNull.Value Then
       Console.WriteLine("is DBNULL")
    Else
       Console.WriteLine("Not DBNULL")
    End If
    

    Best Regards,
    Roahn Luo
    MSDN Subscriber Support in Forum
    If you have any feedback on our support, please contact msdnmg@microsoft.com
    Wednesday, November 24, 2010 6:48 AM
  • Thanks for your reply Roahn. My question pertains to typed DataSets specifically, and the function AddXXXRow that is provided by the designer generated code. Your example may work fine, but does not use the proper AddRow function. The dataset in my example is generated using VS designer and contains a nullable int and a nullable string column. Posting the code to create this dataset would unnecessarily bloat this thread.

    Friday, November 26, 2010 2:27 PM
  • Billy Bob,

    I may be misreading your code, but I dont think you are correctly adding the row to your typed dataset/table.  Have a look here:

    http://msdn.microsoft.com/en-us/library/5ycd1034(VS.80).aspx

     

    You need to setup a Newrow for the dataset and the appropriate datatable in that dataset first, assign your value (or Null in your case), then add the row to the datatable.  

     


    James Crandall ~ http://javitechnologies.com Spatial Database Solutions
    Friday, November 26, 2010 6:29 PM
  • James, this may be true. In that case, why do typed datatables expose a typed AddXXXRow function? One would expect their behaviour to be the same, no?

    Friday, November 26, 2010 6:35 PM
  • It is the same behavior, I'm just guessing that you are not correctly performing the add row.  Also, you could attempt to invoke an .EndEdit on the row to see if that will affect the changes too.  Try something along the lines of this (untested):

    Sub Main()
      Dim myDS As New DataSet1
      Dim newRow as DataRow = DataSet1.Tables(0).NewRow()
      newRow("FieldToAddInfoTo") = DbNull
      myDS.Tables(0).Rows.Add(newRow)
      Console.WriteLine(myDS.DataTable1(0).IsNullableIntNull & " " & myDS.DataTable1(0).IsNullableDateNull)
     End Sub
    
    
    

    James Crandall ~ http://javitechnologies.com Spatial Database Solutions
    Saturday, November 27, 2010 6:31 AM
  • I tried to build a better sample to show you the issue, and I found out that typed and untyped datasets do behave differently. Here's a complete example that shows why. Keep in mind the TypedDataSet has exactly the same columns as the untyped dataset with the same column names (except for the underscore in front of the String column). Also, notice how the String is properly assigned a DBNull, but the Int and the DateTime fail to do so.

      Sub Main()
        Dim myDS As New DataSet
        Dim myDT As New DataTable
        myDS.Tables.Add(myDT)
        myDT.Columns.Add("String", GetType(String))
        myDT.Columns.Add("Int", GetType(Integer))
        myDT.Columns.Add("DateTime", GetType(DateTime))
        myDT.Columns("String").AllowDBNull = True
        myDT.Columns("Int").AllowDBNull = True
        myDT.Columns("DateTime").AllowDBNull = True
    
        myDT.Rows.Add(Nothing, Nothing, Nothing)
        Console.WriteLine(myDT(0)("String") Is DBNull.Value) 'True
        Console.WriteLine(myDT(0)("Int") Is DBNull.Value) 'True
        Console.WriteLine(myDT(0)("DateTime") Is DBNull.Value) 'True
    
        Dim myTypedDS As New TypedDataSet
        myTypedDS.TypedDataTable.AddTypedDataTableRow(Nothing, Nothing, Nothing)
        Console.WriteLine(myTypedDS.TypedDataTable(0).Is_StringNull) 'True
        Console.WriteLine(myTypedDS.TypedDataTable(0).IsIntNull) 'False
        Console.WriteLine(myTypedDS.TypedDataTable(0).IsDateTimeNull) 'False
    
        Console.ReadLine()
      End Sub
    
    Monday, November 29, 2010 2:52 PM
  • Edit: Wow!  I've implemented that approach to adding a row to my typed dataset and is very nice.  Instead of Nothing, Nothing, Nothing --- have you tried to set these to DBNull?

    Dim myTypedDS As New TypedDataSet
    myTypedDS.TypedDataTable.AddTypedDataTableRow(Nothing, Nothing, Nothing)
    
    

    Have you tried to use DBNull.Value instead of Nothing as you have here?  I haven't attempted to accomplish the adding of rows to a typed dataset in this manner, but it sure seems to be the same as creating a new row and setting each of the field values appropriately.  This works for me:

    Dim myTypedDS As New TypedDataSet
    Dim myTypedDSNewRow As DataRow = myTypedDS.TypedDataTable.NewTypedDataTableRow
    
    myTypedDSNewRow = New myTypedDS.TypedDataTable.NewRow
    
    myTypedDSNewRow(myTypedDS.TypedDataTable.String) = DBNull.Value 'or however you are setting the value to null
    myTypedDSNewRow(myTypedDS.TypedDataTable.Int) = DBNull.Value 
    myTypedDSNewRow(myTypedDS.TypedDataTable.DateTime) = DBNull.Value 
    
    

    Also, those are terrible names for your fields as these might be reserved words.


    James Crandall ~ http://javitechnologies.com Spatial Database Solutions
    Monday, November 29, 2010 4:17 PM
  • I have tried to use DBNull.Value instead. It does not compile.

    You are understanding my gripe very well: the code you posted is a valid workaround for the issue I'm having. I'm using this workaround right now (except I use the SetXXXNull functions instead of assigning DBNull.Value), but I wonder why the proper AddTypedDataTableRow function isn't working as expected. The 2 code snippets in your last reply should behave exactly the same way, but they are not. This is why I posted here.

    Obviously, my column names are intended for this example only and I'm not using those in my real code.

    Monday, November 29, 2010 4:28 PM
  • I have tried to use DBNull.Value instead. It does not compile.

    You are understanding my gripe very well: the code you posted is a valid workaround for the issue I'm having. I'm using this workaround right now (except I use the SetXXXNull functions instead of assigning DBNull.Value), but I wonder why the proper AddTypedDataTableRow function isn't working as expected. The 2 code snippets in your last reply should behave exactly the same way, but they are not. This is why I posted here.

    Obviously, my column names are intended for this example only and I'm not using those in my real code.


    I just tried using Nothing for all of the parameters and here's what gets inserted into the database:

    • For String Fields, the values are inserted as "Null"
    • For Integer Fields that accept nulls, the values are inserted as "Null"
    • For Integer Fields that do not accept nulls, the values are inserted as zero (0)
    • For Datetime fields, the values are inserted as Now() or today's datetime.

     


    James Crandall ~ http://javitechnologies.com Spatial Database Solutions
    Monday, November 29, 2010 4:37 PM
  •  Also, notice how the String is properly assigned a DBNull, but the Int and the DateTime fail to do so.


    I think I can anser this better now...

    1.  If your integer fields in the db are set to Nullable, then passing in "Nothing" will insert a Null value.

    2.  ADO.NET will not submit null values for DateTime fields.  Period.  It simply doesn't allow for it.  You might be able to handle this on the db-side of thigns with Stored Procedure or something (issue an ExecuteNonQuery() on a Command).


    James Crandall ~ http://javitechnologies.com Spatial Database Solutions
    Monday, November 29, 2010 5:00 PM
  • You can definitely submit NULL datetimes by using the "SetXXXNull" functions of the typed dataset. This is the latest sample that demonstrates the unexpected behaviors of typed datasets. Any information on why this is so is welcome:

     Sub Main()
      Dim myDS As New DataSet
      Dim myDT As New DataTable
      myDS.Tables.Add(myDT)
      myDT.Columns.Add("String", GetType(String))
      myDT.Columns.Add("Int", GetType(Integer))
      myDT.Columns.Add("NullableInt", GetType(Integer))
      myDT.Columns.Add("DateTime", GetType(DateTime))
      myDT.Columns("String").AllowDBNull = True
      myDT.Columns("NullableInt").AllowDBNull = True
      myDT.Columns("DateTime").AllowDBNull = True
    
      myDT.Rows.Add(Nothing, Nothing, Nothing)
      Console.WriteLine(myDT(0)("String") Is DBNull.Value) 'True
      Console.WriteLine(myDT(0)("Int") Is DBNull.Value) 'True
      Console.WriteLine(myDT(0)("NullableInt") Is DBNull.Value) 'True
      Console.WriteLine(myDT(0)("DateTime") Is DBNull.Value) 'True
    
      Dim myTypedDS As New TypedDataSet
      myTypedDS.Table1.AddTable1Row(Nothing, Nothing, Nothing, Nothing)
      Console.WriteLine(myTypedDS.Table1(0).IsStringFieldNull) 'True
      Console.WriteLine(myTypedDS.Table1(0).IsNull("IntField")) 'False
      Console.WriteLine(myTypedDS.Table1(0).IsNullableIntFieldNull) 'False
      Console.WriteLine(myTypedDS.Table1(0).IsDateTimeFieldNull) 'False
    
      'Must be set to Null here or the Update will throw an SqlDatetime overflow exception.
      myTypedDS.Table1(0).SetDateTimeFieldNull()
    
      Using myTA As New TypedDataSetTableAdapters.Table1TableAdapter
       myTA.Update(myTypedDS.Table1)
    
       'The values inserted will be:
       'StringField = NULL
       'IntField = 0
       'NullableIntField = 0
       'DateTimeField = NULL
      End Using
    
      Console.WriteLine(myTypedDS.Table1(0).IsStringFieldNull) 'True
      Console.WriteLine(myTypedDS.Table1(0).IsNull("IntField")) 'False
      Console.WriteLine(myTypedDS.Table1(0).IsNullableIntFieldNull) 'False
      Console.WriteLine(myTypedDS.Table1(0).IsDateTimeFieldNull) 'True
    
      Console.ReadLine()
     End Sub
    

     

    Monday, November 29, 2010 5:50 PM
  • You can definitely submit NULL datetimes by using the "SetXXXNull" functions of the typed dataset. This is the latest sample that demonstrates the unexpected behaviors of typed datasets. Any information on why this is so is welcome:

     


    When you check the db after the insert/update, is the datetime field set something?  I believe ADO.NET cannot set this type of field to null and will automatically change it to the minimum date value.

    When I attempt to set a Datetime field to Null, I get the error:  "Value of Type 'System.DBNull' cannot be converted to Date".


    James Crandall ~ http://javitechnologies.com Spatial Database Solutions
    Monday, November 29, 2010 6:06 PM
  • Look at my code sample.

      myTypedDS.Table1(0).SetDateTimeFieldNull()

    will set a DateTime field to NULL. This has worked for me.

    Monday, November 29, 2010 6:10 PM
  • Look at my code sample.

      myTypedDS.Table1(0).SetDateTimeFieldNull()

    will set a DateTime field to NULL. This has worked for me.


    Right, but you have not yet added the row in the Typed DS Addrow function, right?  I'd think this is different from updating row 0 as you have above because it already exists.
    James Crandall ~ http://javitechnologies.com Spatial Database Solutions
    Monday, November 29, 2010 6:14 PM
  • No I added the row. It does not already exist. Every time I run this code a new row is added to the database. The Update function adds all row that have a rowstate set to Added. The AddTable1Row creates a new row and adds it right away. The SetDateTimeFieldNull function must be called after I added the row however, because passing Nothing will result in a weird date being added that makes the Update function blow up with a SQL DateTime overflow exception. (Which is closely related to my original question).
    Monday, November 29, 2010 6:18 PM
  • No I added the row. It does not already exist. Every time I run this code a new row is added to the database. The Update function adds all row that have a rowstate set to Added. The AddTable1Row creates a new row and adds it right away. The SetDateTimeFieldNull function must be called after I added the row however, because passing Nothing will result in a weird date being added that makes the Update function blow up with a SQL DateTime overflow exception. (Which is closely related to my original question).


    Then I don't see how you can definitely add nulls to a datetime column in an ADO.NET Dataset.  Perhaps I am just missing something, but I can't do it.  You might be able to see it as null in the .writeline, but upon submiting to the underlying database, it will not insert it as null.

    After you insert the null value of the datetime field into the database the first time, is the value null in the table or is it the minimum date?


    James Crandall ~ http://javitechnologies.com Spatial Database Solutions
    Monday, November 29, 2010 6:37 PM
  • The inserted values that I show in the code's comments are taken from the database itself. The DateTime was NULL. Here's the code behind the typed dataset's SetDateTimeNull function (this is in the Table1Row class)

        Public Sub SetDateTimeFieldNull()
          Me(Me.tableTable1.DateTimeFieldColumn) = Global.System.Convert.DBNull
        End Sub
    

    I'm guessing the trick is to use Convert.DBNull. 

    Monday, November 29, 2010 6:42 PM
  • The inserted values that I show in the code's comments are taken from the database itself. The DateTime was NULL. Here's the code behind the typed dataset's SetDateTimeNull function (this is in the Table1Row class)

      Public Sub SetDateTimeFieldNull()
    
       Me(Me.tableTable1.DateTimeFieldColumn) = Global.System.Convert.DBNull
    
      End Sub
    
    

    I'm guessing the trick is to use Convert.DBNull. 


    It still will not work.  I get a conversion error: "Conversion from type DBNull to Date is not valid."

     

     


    James Crandall ~ http://javitechnologies.com Spatial Database Solutions
    Monday, November 29, 2010 6:46 PM
  • Hi, Billy have you tried something like this? It's a console application with a typed data set named MyDataSet, a data table called MyTable and two columns: NullableInt and NullableDate.

      Sub Main()
    
        Try
          Dim myDS As New MyDataSet
    
          myDS.MyTable.Rows.Add(Nothing, Nothing)
          Dim firstRow As MyDataSet.MyTableRow = CType(myDS.MyTable.Rows(0), MyDataSet.MyTableRow)
    
          Console.WriteLine("Analyzing firstRow...")
          If firstRow.IsNull("NullableInt") Then
            Console.WriteLine(vbTab & "NullableInt is null.")
          End If
          If firstRow.IsNull("NullableDate") Then
            Console.WriteLine(vbTab & "NullableDate is null.")
          End If
    
          myDS.MyTable.Rows.Add(DBNull.Value, DBNull.Value)
          Dim secondRow As MyDataSet.MyTableRow = CType(myDS.MyTable.Rows(1), MyDataSet.MyTableRow)
    
          Console.WriteLine("Analyzing secondRow...")
          If secondRow.IsNull("NullableInt") Then
            Console.WriteLine(vbTab & "NullableInt is null.")
          End If
          If secondRow.IsNull("NullableDate") Then
            Console.WriteLine(vbTab & "NullableDate is null.")
          End If
    
          Dim someInt As Integer = Nothing
          Dim someDate As Date = Nothing
          Dim thirdRow As MyDataSet.MyTableRow
          thirdRow = myDS.MyTable.NewMyTableRow
          thirdRow.NullableInt = someInt
          thirdRow.NullableDate = someDate
          myDS.MyTable.Rows.Add(thirdRow)
    
          Console.WriteLine("Analyzing thirdRow...")
          If thirdRow.IsNull("NullableInt") Then
            Console.WriteLine(vbTab & "NullableInt is null.")
          Else
            Console.WriteLine(vbTab & "NullableInt isn't null and its value is {0}.", thirdRow.NullableInt)
          End If
          If thirdRow.IsNull("NullableDate") Then
            Console.WriteLine(vbTab & "NullableDate is null.")
          Else
            Console.WriteLine(vbTab & "NullableDate isn't null and its value is {0}.", thirdRow.NullableDate)
          End If
        Catch ex As Exception
          Console.WriteLine(ex.Message)
        End Try
    
        Console.ReadLine()
    
      End Sub
    

    See this article: 'Everybody's favorite topic - NULL '. I'm working on modifying the MyTableRow class so it accepts values of type Object.

    Kind regards,

    Carlos Mallen

    Monday, November 29, 2010 10:02 PM
  • What about this?

          Dim fourthRow As MyDataSet.MyTableRow
          fourthRow = myDS.MyTable.NewMyTableRow
          fourthRow(myDS.MyTable.NullableIntColumn) = Global.System.Convert.DBNull
          fourthRow(myDS.MyTable.NullableDateColumn) = Global.System.Convert.DBNull
          myDS.MyTable.Rows.Add(fourthRow)
    
          Console.WriteLine("Analyzing fourthRow...")
          If fourthRow.IsNull("NullableInt") Then
            Console.WriteLine(vbTab & "NullableInt is null.")
          End If
          If fourthRow.IsNull("NullableDate") Then
            Console.WriteLine(vbTab & "NullableDate is null.")
          End If
    

    All the best!

    Carlos Mallen

    Monday, November 29, 2010 10:26 PM
  • Your example reshows what my issue is: your first and second adds uses the untyped Add function, which defeats the purpose of typed dataset. The third one fails. The article you link seems to provide the answer though: Microsoft DID try to use nullables with DataSets, but .Net boxing became an issue and made for an even worse solution.

    So the answer is: It just doesn't work. Deal with it.

    Thank you all for your help.

    Tuesday, November 30, 2010 1:49 PM
  • Your example reshows what my issue is: your first and second adds uses the untyped Add function, which defeats the purpose of typed dataset. The third one fails. The article you link seems to provide the answer though: Microsoft DID try to use nullables with DataSets, but .Net boxing became an issue and made for an even worse solution.

    So the answer is: It just doesn't work. Deal with it.

    Thank you all for your help.

     

    So, then I was correct in saying ADO.NET Typed Dataset and Nulls will not work for Datetime fields? 

     


    James Crandall ~ http://javitechnologies.com Spatial Database Solutions
    Tuesday, November 30, 2010 1:59 PM
  • Typed DataSets create a Row class (for example MyTableRow) that expose a "SetXXXNull" (for example, SetMyFirstColumnNull) function for each nullable columns. This works for columns of type DateTime as well. I was able to insert and update null values in a datetime field using those functions.  I don't really know how you would do this using untyped DataSets, but I bet the Convert.DBNull object will do the trick (since in the end, that's all that a typed dataset is: a wrapper for an untyped dataset).
    Tuesday, November 30, 2010 2:19 PM
  • Typed DataSets create a Row class (for example MyTableRow) that expose a "SetXXXNull" (for example, SetMyFirstColumnNull) function for each nullable columns. This works for columns of type DateTime as well. I was able to insert and update null values in a datetime field using those functions.  I don't really know how you would do this using untyped DataSets, but I bet the Convert.DBNull object will do the trick (since in the end, that's all that a typed dataset is: a wrapper for an untyped dataset).


    Huh.  I had the opposite result: I could not add/insert a null value into a Typed Dataset's/DataTable's datetime field with the myDataSet.myDataTable.AddMyDataTableRow() method.  No where was I able to perform conversion from null to date and would either get compile errors or exception messaging telling me that I could not perform that conversion.

    For ex, this will run without error but results in the date value getting inserted as Now():

    'After a row is inserted into the datatable, this runs
    
     For i = 0 To t_dsFIRE.EditLog.Rows.Count - 1
          t_dsFIRE.EditLog(i).BeginEdit()
          t_dsFIRE.EditLog(i).SetDateModifiedNull()
          t_dsFIRE.EditLog(i).EndEdit()
     Next


    James Crandall ~ http://javitechnologies.com Spatial Database Solutions

    Tuesday, November 30, 2010 2:34 PM
  • Check out this snippet. I created a table in a database with only a nullable datetime field (called, originally, DateTimeField), and created the typed dataset from the database.

      Public Sub Main()
        Dim myDS As New MyDataSet
        Dim myNewRow = myDS.Table1.AddTable1Row(New DateTime(2012, 12, 20)) 'It really does not matter what you put here.
        myNewRow.SetDateTimeFieldNull() 'Because calling this function will set the DateTime to NULL.
        Using myAdaptor As New MyDataSetTableAdapters.Table1TableAdapter
          myAdaptor.Update(myDS.Table1)  'This will insert NULL.
        End Using
      End Sub
    

    The main point is that you can't set the datetime to Nothing when adding to the datatable, but if you call "SetDateTimeFieldNull" for the newly added row before you call Update, it will be properly set to null and will insert a null in the database.

    Tuesday, November 30, 2010 2:47 PM
  • This still will not work for me (it will run the insert/update, but it inserts the value as a minimum date or Now), but I think I know why....  I do not employ TableAdapters with my datasets as I created my own Strongly Typed Datasets minus these. 


    James Crandall ~ http://javitechnologies.com Spatial Database Solutions
    Tuesday, November 30, 2010 2:59 PM
  • That would make sense. Try using the provided strongly typed TableAdatpers and see if it works better.

    Tuesday, November 30, 2010 3:01 PM