我在SQL Server中有这个存储过程:
ALTER PROCEDURE New_Column
@table_name varchar(25),
@column_name varchar(25)
AS
BEGIN
DECLARE @mySql nvarchar (MAX)
SET NOCOUNT ON;
SET @mySql = 'ALTER TABLE '+@table_name+' ADD '+@column_name+' INT'
EXEC (@mySql)
END
这个代码在Visual Studio中,使用VB.Net和Web表单
Imports System.Data.SqlClient
Imports System.Data.OleDb
Imports System.Data
Imports System.Web
Public Class Add_Column
Inherits System.Web.UI.Page
Public strConn As String = "Data Source=.;Initial Catalog=EECRDashboard;Integrated Security=True"
Private sqlCon As SqlConnection
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
SelectTableName()
End Sub
Public Sub SelectTableName()
If Not IsPostBack Then
Try
sqlCon = New SqlConnection(strConn)
Dim reader As SqlDataReader
Using (sqlCon)
Dim sqlComm As New SqlCommand()
sqlComm.Connection = sqlCon
sqlComm.CommandText = "SelectTableName"
sqlComm.CommandType = CommandType.StoredProcedure
sqlCon.Open()
reader = sqlComm.ExecuteReader()
cboTableName.DataSource = reader
cboTableName.DataTextField = "TABLE_NAME"
cboTableName.DataValueField = "TABLE_NAME"
cboTableName.DataBind()
Dim Period As String = cboTableName.SelectedValue
sqlCon.Close()
End Using
Catch ex As Exception
End Try
End If
End Sub
Protected Sub cboTableName_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboTableName.SelectedIndexChanged
SelectTableName()
End Sub
Private Sub Insert_Column()
Try
sqlCon = New SqlConnection(strConn)
Using (sqlCon)
Dim sqlComm As New SqlCommand()
sqlComm.Connection = sqlCon
sqlCon.Open()
sqlComm.CommandText = "New_Column"
sqlComm.CommandType = CommandType.StoredProcedure
sqlComm.Parameters.Add("@column_name", SqlDbType.VarChar).Value = txtColumnName.Text()
sqlComm.Parameters.Add("@table_name", SqlDbType.VarChar).Value = Convert.ToInt32(cboTableName.SelectedValue.ToString)
sqlComm.ExecuteNonQuery()
sqlCon.Close()
End Using
Catch ex As Exception
End Try
End Sub
Protected Sub btbSaveColumn_Click(sender As Object, e As EventArgs) Handles btbSaveColumn.Click
Insert_Column()
End Sub
End Class
Buuut,当我点击按钮时,它不会创建列。当我在SQL Server Management Studio中进行测试时,它可以工作!
我不知道问题所在。
感谢您的帮助!