我在vs2005里建了个数据库在一个解决方案下。为什么用insert into写进数据时。总写不进,单步跟踪时,所有语句都执行了。可是在数据库里还是没有。但我在sql server里面建一个数据库,用同样的insert into语句,又可以写进去了。怎么回事呀。在vs2005里建的数据库不可以写数据进去的吗。

解决方案 »

  1.   

    没有。可是单步运行时,它每一条语句都执行了。没弹出错误。换个连接字符串,连接sql server2005里的数据库,又可以写进了。我晕
      

  2.   

    - -
    说实话我木有用过这样的方式,一直都是web.congif里IP+SQL认证但是见过别人这样弄,也没问题的
      

  3.   

     private void button1_Click(object sender, EventArgs e)
            {
                if (textBox1.Text == "" || textBox2.Text == "" || textBox3.Text == "")
                {
                    MessageBox.Show("所有项都必须填写!!");
                    return;
                }
                SqlConnection conn;
                SqlCommand da;
                //string str = "DATABASE=Database1;SERVER=localhost;Integrated Security=True;";
                String Database = System.IO.Directory.GetCurrentDirectory() + "\\Database1.mdf";            string str = "Data Source=.\\SQLExpress;Integrated Security=SSPI;AttachDBFilename=" + Database + ";User Instance=true;";
                string s = "Insert Into stu(xuehao,name,sex) Values('"; 
    s += textBox1.Text + "','"; 
    s += textBox2.Text + "','"; 
    s += textBox3.Text + "')";            conn = new SqlConnection(str);
                conn.Open();
                da = new SqlCommand(s, conn);
                da.ExecuteNonQuery();            textBox1.Text = "";
                textBox2.Text = "";
                textBox3.Text = "";
                conn.Close();
                MessageBox.Show("添加成功!!!!");
            }
      

  4.   

    SQLExpress
    都大写试试……
      

  5.   

    给你一段现成的:
    public class DB
    {
            public static void ExecSql(string p_strSql)
            {
                using (SqlConnection connection = new SqlConnection(ConnectString))
                {
                    connection.Open();
                    using (SqlCommand command = new SqlCommand(p_strSql, connection))
                    {
                        command.ExecuteNonQuery();
                    }
                    connection.Close();
                }
            }
    }
    ConnectString为连接字符串,比如:
    Data Source=服务器;Initial Catalog=数据库;User ID=用户名;Password=密码
    具体使用如下:
    string strSql="insert into tb(f1,f2...) values(v1,v2...)";
    try
    {
       DB.Exec(strSql);
    }
    catch.....
      

  6.   

      string str = "Data Source=.\\SQLExpress;Integrated Security=SSPI;AttachDBFilename=" + Database + ";User Instance=true;";
    这句改改吧有可能没连接到数据库中
    strng str = "server=.\\SQLExpress;database=数据库名;uid=sa;pwd=ok";
    SQLExpress这个看看跟你数据库的名字是不是一样!~
      

  7.   

    有点懂了,好像这个语句String Database = System.IO.Directory.GetCurrentDirectory() + "\\Database1.mdf";取得是bin目录下的数据库的路径。但写进去的是在bin文件夹外面那个数据库。我本来想用了这个语句,程序拿到别的机运行就不用改连接字符串,比较方便,以前做查询操作都是可以的。。不过为什么我只建一个数据库,会在bin目录下有一个在bin外也有一个呢。那我到了别的机不是也要改连接字符串吗。有没有不用改链接字符串的,(不要远程连接),拿到别的机就可以运行。求解。
      

  8.   

    事物提交了吗?
    Transaction.Commit();