0

i want to insert rows one by one into a database in the sql server 2005.

the problem is that i have tried all possible but the rows just dont get added to the database, i get an exception

on executing this code, i get this exception

Unhandled Exception: System.IndexOutOfRangeException: An SqlParameter with ParameterName 'msg' is not contained by this SqlParameterCollection.

here is the code -

SqlConnection thisConnection = new SqlConnection(@"Integrated Security=SSPI;Initial Catalog=sec;Workstation ID=3035-HEADSTRONG;");
thisConnection.Open();
SqlCommand thisCommand = thisConnection.CreateCommand();
StreamReader sr= new StreamReader(@"e:\fast.txt");
string ss=null;
int i=1;
ss=sr.ReadLine();
Console.WriteLine(ss);
    while(ss!=null)
        {
        i++;
        thisCommand.Parameters["msg"].Value=ss;
        thisCommand.Parameters["id"].Value=i;
        // -----------i have tried this too--------
                //thisCommand.CommandText = "INSERT INTO fix (msg,id) VALUES (ss,i)";
        //thisCommand.ExecuteNonQuery();
        ss=sr.ReadLine();

    }

Edited by mike_2000_17: Fixed formatting

3
Contributors
5
Replies
6
Views
9 Years
Discussion Span
Last Post by safe2010
0

Ok first things first. You did close the connection right?

2nd of all. You might wanna clear your parameters after you enter each row.

These are the two observations that I can make from a cursory glance at your code. I'd like it if you could try out these two things and give a feedback

0

i tried both of your suggestions but i am getting the same exception again---

Unhandled Exception: System.IndexOutOfRangeException: An SqlParameter with ParameterName 'msg' is not contained by this SqlParameterCollection.

i have checked the table- both the names of the parameters are right.

0

i got it...

here's the code

using System;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using System.Data.Odbc;
using System.Data.Common;
using System.Data;
using System.IO;

namespace db
{
    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    /// 

    class Class1
    {

        static int i=1;
        static string ss=null;
        static string t="IOI";
        static string str=null;
        static SqlCommand thisCommand;
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        public static void Main(string[] args)
        {
SqlConnection thisConnection = new SqlConnection(@"Integrated Security=SSPI;Initial Catalog=sec;Workstation ID=3035-HEADSTRONG;");
        thisConnection.Open();
        StreamReader sr= new StreamReader(@"e:\fast.txt");
        str="insert into fix(msg,id,type) values(@msg,@id,@type)";
                ss=sr.ReadLine();
                while(ss!=null)
                {
                    i++;
            thisCommand= new SqlCommand(str,thisConnection);
            thisCommand.Parameters.Add("@msg",ss);
            thisCommand.Parameters.Add("@id",i);
            thisCommand.Parameters.Add("@type",t);
                        thisCommand.ExecuteNonQuery();
                    ss=sr.ReadLine();
                }
            thisCommand.CommandText="select * from fix";
        SqlDataReader sdr = thisCommand.ExecuteReader();
                while (sdr.Read())
                {
            Console.WriteLine("\t{0}\t{1}", sdr["msg"], sdr["id"]);
                    Console.WriteLine();
                }
                sdr.Close();
        }

    }
}

Edited by pyTony: fixed formatting

0

I have a form to insert data into a sql data base.But I don't remember the code to be written at the back of the insert button ("on click button") using c#

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.