1
Reply

C# newbie-error with program.cs and possible issue with DataRelation on many-to-many relationship

D Rhoades

D Rhoades

Feb 27 2009 11:17 AM
4.5k

This is my first C# project and I'm building an application to track books I've read and want to read. Here's the code in my datahandling class. I am getting a Debug error on Application.Run that says "Starting a second message loop on a single thread is not a valid operation. Use Form.ShowDialog instead. Is this error truly about that line of the code or about my class?


using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;

namespace BooksAuthors
{
    static class Program
    {
         [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new MainForm());
        }
    }
}


ClassDataHandling.cs:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace BooksAuthors
{
    internal class ClassDataHandling
    {
        //BooksAuthors.ClassDataHandling _sqlData;

        public void MainDataClass()
        {
            //specify SQL connection string
            string connString = @"Server=RHOADESD;Integrated Security=True;" +
                "Database=BOOKS";
            SqlConnection conn = new SqlConnection(connString);
           

            SqlDataAdapter booksAdapter = new SqlDataAdapter(
                "Select * from books", conn);
            SqlDataAdapter bkauthlinkAdapter = new SqlDataAdapter(
                "Select * from bkauthlink", conn);
            SqlDataAdapter authorAdapter = new SqlDataAdapter(
                "Select * from authors", conn);

            conn.Open();

                      
            //Create DataSet to contain related data tables, rows and columns
            DataSet BookAuthDataSet = new DataSet("BookAuthors");
            booksAdapter.Fill(BookAuthDataSet, "books");
            bkauthlinkAdapter.Fill(BookAuthDataSet, "bkauthlink");
            authorAdapter.Fill(BookAuthDataSet, "authors");

            conn.Close();

            DataRelation book = BookAuthDataSet.Relations.Add(
                "BookRel", BookAuthDataSet.Tables["books"].Columns["booksID"],
                BookAuthDataSet.Tables["bkauthlink"].Columns["booksID"]);
            DataRelation author = BookAuthDataSet.Relations.Add(
                "AuthRel", BookAuthDataSet.Tables["authors"].Columns["authorsID"],
                BookAuthDataSet.Tables["bkauthlink"].Columns["authorsID"]);


Answers (1)