asp.net后台老板创建数据表出错

asp.net后台创建数据表出错
这是我创建数据表的代码 因为每个班的课程不同 所以列名不一定相同
string tablename = tbtable.Text;
        string sqlStr = "create table"+" ";
        sqlStr += tablename + "(";
        sqlStr += "表编号 bigint identity(1000,1) primary key,";
        sqlStr += "系别 varchar(50),";
        sqlStr += "班别 varchar(50),";
        sqlStr += "学号 bigint foreign key references studentInfomation(学号),";
        for (int i = 0; i < tablesource.Rows.Count; i++)
        {
            sqlStr += tablesource.Rows[i]["课程名"].ToString()+"int,";
        } 
sqlStr += ")";
这是我实现创建的代码
        SqlConnection conn = sqlDate.Conn();
        SqlCommand cmd = new SqlCommand(sqlStr,conn);
        cmd.ExecuteNonQuery();
        conn.Close();
        conn.Dispose();
这是我sqlDate类里面的代码 本来没有Conn()这个方法的 但是前面的SqlCommand cmd 又需要conn 我就又创了个能有返回值的创建SqlConnection的方法
  static SqlConnection conn;
    public sqlDate()
    {
        //
        //TODO: 在此处添加构造函数逻辑
        //
    }
    public static SqlConnection Conn() {
        if (conn == null)
        {
            conn = new SqlConnection(ConfigurationManager.ConnectionStrings["InfomationConnectionString"].ToString());
            //conn = new SqlConnection("server=localhost;database=Infomation;Trusted_Connection=yes");
        }
        if (conn.State == System.Data.ConnectionState.Closed)
        {
            conn.Open();
        }
        return conn;
    }
    public static void Open()
    {
        if (conn == null)
        {
            conn = new SqlConnection(ConfigurationManager.ConnectionStrings["InfomationConnectionString"].ToString());
            //conn = new SqlConnection("server=localhost;database=Infomation;Trusted_Connection=yes");
        }
        if (conn.State == System.Data.ConnectionState.Closed)
        {
            conn.Open();
        }
    }
最后运行时提示'(' 附近有语法错误。
错误指向cmd.ExecuteNonQuery();
希望大家帮我看看问题出在哪里 谢谢
------解决思路----------------------
在for循环里面,字段名和数据类型Int之间没有空格分开,另外循环的最后一个的时候,应该不要逗号了,所以在循环后把最后一个逗号去掉(比如用SubString)。
如果还有问题,把拼接好的sql语句输出,放到SQL Server上验证一下。
------解决思路----------------------
你最后一个逗号去了没?
你再把SQL语句输出放到数据库试一下,或者先试一下下面的语句。
因为你的表设了外键,所以保证studentInfomation表已经存在。

CREATE TABLE qqq (
[表编号] bigint identity (1000, 1) PRIMARY KEY,
[系别] varchar (50),
[班别] varchar (50),
[学号] bigint foreign key references studentInfomation(学号),
[JAVA] int,
[ASP.NET] int,
[软件工程] int
)

引用:
Quote: 引用:

给你的字段名用方括号括起来试试

sqlStr += "["+tablesource.Rows[i]["课程名"].ToString()+"] int,";

加方括号也没用哎