Prepare: CommandText property has not been initialized

Posted on 2009-04-08
Last Modified: 2012-05-06
Hi ,
i keep getting this message(InvalidOperationException was unhandled.....Prepare: CommandText property has not been initialized) during debugging at ......da.Update(ds, "Shot") ....

can someone please explain what it means and how i can rectify it?

many thanks
Private Sub MenuItem6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem6.Click


        Dim da As New SqlCeDataAdapter(sql, conn)

        Dim cb As New SqlCeCommandBuilder(da)

        dsNewRow = ds.Tables("Shot").NewRow()

        dsNewRow.Item("ShotID") = scorecount + 1

        dsNewRow.Item("Club") = ComboBox2.Text

        dsNewRow.Item("ActDist") = TextBox30.Text

        dsNewRow.Item("EndLie") = ComboBox6.Text

        dsNewRow.Item("PuttDist") = ComboBox9.Text

        dsNewRow.Item("WindStrength") = WeatherCond.ComboBox3.Text

        dsNewRow.Item("Assist") = WeatherCond.ComboBox5.Text

        dsNewRow.Item("Crosswind") = WeatherCond.ComboBox7.Text

        dsNewRow.Item("HoleNo") = Label5.Text

        dsNewRow.Item("RoundID") = maxroundid()

        dsNewRow.Item("BallFlight") = ComboBox1.Text


        da.Update(ds, "Shot")

Open in new window

Question by:baz86
  • 5
  • 2
LVL 11

Accepted Solution

srikanthreddyn143 earned 500 total points
Comment Utility
You have to specify update command for the dataadapter.Just look into attached code.I got it from Internet.
using System;

using System.Data;

using System.Data.SqlClient;

   class PropagateChanges {

      static void Main(){

         string connString = "server=(local)\\SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI";

         string qry = @"select * from employee ";

         string upd = @"update employee set firstname = @firstname where id = @id";

         SqlConnection conn = new SqlConnection(connString);

         try {

            SqlDataAdapter da = new SqlDataAdapter();

            da.SelectCommand = new SqlCommand(qry, conn);

            DataSet ds = new DataSet();   

            da.Fill(ds, "employee");

            DataTable dt = ds.Tables["employee"];

            dt.Rows[0]["firstname"] = "W";

            foreach (DataRow row in dt.Rows){


                  "{0} {1}",




            // Update employees

            SqlCommand cmd = new SqlCommand(upd, conn);

            cmd.Parameters.Add("@firstname",SqlDbType.NVarChar,15, "firstname");

            SqlParameter parm = cmd.Parameters.Add("@id",SqlDbType.Int,4,"id");

            parm.SourceVersion = DataRowVersion.Original;

            da.UpdateCommand = cmd;

            da.Update(ds, "employee");

         } catch(Exception e) {

            Console.WriteLine("Error: " + e);

         } finally {





Open in new window

LVL 11

Expert Comment

Comment Utility
Or If you use CommandBuilder, it will automatically take care of update statement. Please check the link


Author Comment

Comment Utility
thanks for the reply
if you check my code snippet i have used commandbuilder..but i still get the same message
What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

LVL 11

Expert Comment

Comment Utility
My Bad. What is the SQL query you are using at command object?

And also do you have to specify shotID?
LVL 11

Expert Comment

Comment Utility
Is SHOTID Primary Key?It seems commandbuilder works only when there is unique key values. Please look into your ShotID values during run time and also look into Update statement using
cmdBuilder.GetUpdateCommand.CommandText to know what is the update command that is getting.

Author Comment

Comment Utility
this is the sql statement i run at form load
ShotID is quiet misleading here (sorry about that), it isnt a primary key  but just an increment of the shots taken.

conn.ConnectionString = ConnStr


        Dim sql As String = "SELECT * From tblShot"

        da = New SqlCeDataAdapter(sql, conn)

Open in new window

LVL 11

Expert Comment

Comment Utility
Then CommandBuilder doesnt work for it. You have to manually give the update statement for the adapter with parameters like the code I have given on the top.

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Microsoft Reports are based on a report definition, which is an XML file that describes data and layout for the report, with a different extension. You can create a client-side report definition language (*.rdlc) file with Visual Studio, and build g…
Creating an analog clock UserControl seems fairly straight forward.  It is, after all, essentially just a circle with several lines in it!  Two common approaches for rendering an analog clock typically involve either manually calculating points with…
Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

6 Experts available now in Live!

Get 1:1 Help Now