-1

データベースにテーブルを動的に作成します。ユーザーは自分の名前を好きなように入力し、 を使用して言語を選択しますRadioButton。問題は、実行後cmd.ExecuteNonQueryに の値がからiに変化することです。これは、テーブルを作成できなかったことを示していますが、データベースに移動すると、正常に作成されました。どこが間違っているのか教えてください。-10

protected void btnpaper_Click(object sender, EventArgs e)
    {
        try
        {                
                string conn = ConfigurationManager.ConnectionStrings["sqlconn"].ConnectionString;
                SqlConnection con = new SqlConnection(conn);
                con.Open();
                char[] arr = new char[] {'n','g','l','i','s','h'};
                string str = "CREATE TABLE " + Label1.Text.Trim() + 
                             txtpaperset.Text.Trim()+ rbtnEng.Text.TrimEnd(arr) +
                             "(" + "quesNo int NOT NULL PRIMARY KEY, " + 
                             "question varchar(1000) NOT NULL," + 
                             "ansA varchar(500) NOT NULL, " + 
                             "ansB varchar(500) NOT NULL, " + 
                             "ansC varchar(500) NOT NULL, " + 
                             "ansD varchar(500) NOT NULL, " + 
                             "rightAns varchar(50) NOT NULL " + ")";                    
                SqlCommand cmd = new SqlCommand(str, con);
                int i = cmd.ExecuteNonQuery();
                if (i > 0)
                {
                    lblerrormsg.Visible = true;
                    con.Close();
                }
                else
                {
                    lblerrormsg.Text = "Table Not Created Please Try with Different Name!";                        
                    con.Close();
                }                

        }
        catch (System.Exception excep)
        {
            MessageBox.Show(excep.Message);
        }      
    }
4

2 に答える 2

1

コードに問題はありません。すべてが正しいです。このリンクを確認してください。

**

UPDATE、INSERT、および DELETE ステートメントの場合、戻り値はコマンドの影響を受けた行数です。挿入または更新されるテーブルにトリガーが存在する場合、戻り値には、挿入または更新操作の両方によって影響を受ける行の数と、トリガーまたはトリガーによって影響を受ける行の数が含まれます。他のすべてのタイプのステートメントの場合、戻り値は -1 です。ロールバックが発生した場合、戻り値も -1 です。

**

于 2012-10-22T09:31:32.073 に答える
-1

これを使って

SqlCommand cmd = new SqlCommand(str, con); cmd.CommandType = CommandType.Text;

于 2012-10-22T09:21:13.433 に答える