- PR -

GridViewのカラムの動的表示および、データ更新について

1
投稿者投稿内容
ひろこ
会議室デビュー日: 2008/05/12
投稿数: 2
投稿日時: 2008-05-12 18:15
お世話になります。

GridViewに可変のテーブルの内容を表示し、かつデータの更新を行いたいのですが、
更新を行うと、「ORA-01036: illegal variable name/number」でエラーになってしまいます。
SqlDataSourceを可変にした場合の、データ更新の方法を教えてください。
よろしくお願いします。

System.Data.OracleClient.OracleConnection.CheckError(OciErrorHandle errorHandle, Int32 rc) +166
System.Data.OracleClient.OracleParameterBinding.Bind(OciStatementHandle statementHandle, NativeBuffer parameterBuffer, OracleConnection connection, Boolean& mustRelease, SafeHandle& handleToBind) +1183
System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciRowidDescriptor& rowidDescriptor, ArrayList& resultParameterOrdinals) +1604
System.Data.OracleClient.OracleCommand.ExecuteNonQueryInternal(Boolean needRowid, OciRowidDescriptor& rowidDescriptor) +503
System.Data.OracleClient.OracleCommand.ExecuteNonQuery() +140


//xxx.aspx
コード:
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConflictDetection="CompareAllValues"
            ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
            ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>"
            SelectCommand='SELECT "USERID", "USERNAME" FROM "USERINFO"'
            UpdateCommand=''>

        </asp:SqlDataSource>
    
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" OnRowUpdating="GridView1_RowUpdating">
        </asp:GridView>



コード:
//xxx.cs
    protected void Page_Load(object sender, EventArgs e)
    {
        SqlDataSource1.SelectCommand = "SELECT USERID, USERNAME FROM USERINFO";
                
        GridView1.DataSourceID = "SqlDataSource1";
        GridView1.Columns.Clear();
        BoundField aa = new BoundField();

        aa.ReadOnly = true;
        aa.DataField = "USERID";
        aa.HeaderText = "USERID";
        GridView1.Columns.Add(aa);

        aa.ReadOnly = false;
        aa.DataField = "USERNAME";
        aa.HeaderText = "USERNAME";
        GridView1.Columns.Add(aa);

        CommandField cf = new CommandField();
        cf.ShowDeleteButton = true;
        cf.ShowEditButton = true;
        GridView1.Columns.Add(cf);

    }

    protected void GridView1_RowUpdating(Object sender, GridViewUpdateEventArgs e)
    {
        SqlDataSource1.UpdateCommand = "UPDATE USERINFO SET USERNAME ='BBB'  WHERE USERID='AAA'";
       
    }

ぴあちゃん
ぬし
会議室デビュー日: 2008/02/07
投稿数: 287
投稿日時: 2008-05-12 23:40
コード:
        aa.ReadOnly = true;
        aa.DataField = "USERID";
        aa.HeaderText = "USERID";
        GridView1.Columns.Add(aa);

        aa.ReadOnly = false;
        aa.DataField = "USERNAME";
        aa.HeaderText = "USERNAME";
        GridView1.Columns.Add(aa);
        CommandField cf = new CommandField(); //★ココでブレークポイント



Watch 画面で GridView1.Columns[0] を見てみるとか。


ひろこ
会議室デビュー日: 2008/05/12
投稿数: 2
投稿日時: 2008-05-15 16:12
GridView1.Columns[0]の内容は正しくセットされているようです
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2008-05-16 01:56
引用:
GridViewに可変のテーブルの内容を表示し、かつデータの更新を行いたいのですが、
更新を行うと、「ORA-01036: illegal variable name/number」でエラーになってしまいます。

とりあえずエラー内容で検索すれば色々でてきますよ。
http://www.google.co.jp/search?num=20&hl=ja&c2coff=1&safe=off&q=ORA-01036&btnG=%E6%A4%9C%E7%B4%A2&lr=
1

スキルアップ/キャリアアップ(JOB@IT)